首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

在无需维护服务器的情况下实现邮件服务(3)

在无需维护服务器的情况下实现邮件服务(3)

步骤 3. 处理代码sendemail 演示是一个构建于 SendGrid Java 之上的 Java Servlet 应用程序。前端是一个用 HTML5/CSS3 和 jQuery 编写的                                Ajax 客户端,用于执行 POST 调用和呈现响应。servlet 会处理请求,并将响应返回给浏览器。
以下各个小节将带您了解演示应用程序的代码和功能。
下载和构建 SendGrid Java 库
  • 从   下载代码。
  • 打开一个 Windows® 提示并运行 gradlew。
  • 运行 gradlew build 来生成一个 JAR 库文件。
从 Eclipse 引用 SendGrid Java 库
  • 将生成的 JAR 文件复制到您的项目。
  • 配置您的项目的 Java Build Path,使之包含 JAR 文件。
    1
    2
    3
    import com.sendgrid.SendGrid;
    import com.sendgrid.SendGrid.Email;
    import com.sendgrid.SendGridException;




SendGrid API                                密钥您需要使用您的应用程序的 API 密钥来连接到 SendGrid 服务,因为每个 API                                调用都需要进行身份验证。在将服务添加/绑定到现有的应用程序之后,该服务的连接和凭证信息在 Bluemix VCAP_SERVICES                                环境中是可用的。
  • 在 Bluemix 仪表板上,选择您的应用程序。在 Overview 部分,单击应用程序运行时名称,在这里,该名称是                                                Liberty-WAR
  • 向下滚动到 Environment Variables 部分并查看的                                                VCAP_SERVICES 变量。此环境变量包含应用程序正在使用的服务的详细信息,包括凭证详细信息。请注意,这是一个                                        JSON 对象。
  • 以下代码演示了如何使用 org.json 在 Java 代码中检索 username 和                                                password。                                               
    1
    2
    3
    4
    5
    6
    7
    8
    9
    final String VCAP_SERVICES = System.getenv("VCAP_SERVICES");
    if (VCAP_SERVICES != null) {            
        JSONObject vcap = new JSONObject(VCAP_SERVICES);
        JSONArray sendgrid = (JSONArray) vcap.get("sendgrid");
        JSONObject json = sendgrid.getJSONObject(0);
        JSONObject credentials = json.getJSONObject("credentials");
        String username = credentials.getString("username");
        String password = credentials.getString("password");                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           
    }




如何发送电子邮件发送电子邮件是 Java 程序的一项最基本的电子邮件功能。SendGrid 提供了两种发送电子邮件的方式:SMTP 中继或 Web API。  是一个助手库,用于包装                                SMTP API 活动。它提供了 SendGrid 与您的应用程序之间的快速集成。关于与 SendGrid 集成的更多信息,请参阅  。
SendGrid Java 库提供了程序发送电子邮件所需的一切。要发送消息,一个程序应该执行以下步骤:
  • 构造一个新的 Email 对象。                                               
    1
    Email email = new Email();




  • 设置该对象的字段和内容。                                               
    1
    2
    3
    4
    5
    6
    email.addTo("david@sendgridtest.com");
    email.addToName("David");
    email.setFrom("sendgriddemo@sendgridtest.com");
    email.setFromName("SendGrid Demo");
    email.setSubject("Hello World");
    email.setText("Hello, \n This is a test email sent from IBM Bluemix SendGrid service");




  • 使用您的 SendGrid 凭证初始化 SendGrid 对象。对于 Bluemix SendGrid 服务,此信息被存储在                                        VCAP_SERVICES 环境变量中。参见  。                                               
    1
    SendGrid sendgrid = new SendGrid(<user_name>, <password>);




  • 发送它。
    1
    sendgrid.send(email);




如何使用                                SendGrid 应用程序(过滤器)SendGrid 提供了各种应用程序(过滤器)来提供额外的电子邮件功能。这些功能包括发送 bcc 电子邮件、在文本和 HTML 正文的底部添加脚注、订阅追踪、Google                                Analytics 追踪、单击追踪、电子邮件模板和其他功能。要获得过滤器列表,请参见  。
请注意,API 文档中的过滤器定义也适用于 SMTP API。要在 Java 中添加一个过滤器,可以使用以下语法来调用                                        com.sendgrid.SendGrid.Email 类中的 addFilter() 方法:
1
email.addFilter(<filter_name>, <parameter_name>, <parameter_value>);




例如,要插入一个电子邮件脚注,可以运行以下代码:
1
2
3
email.addFilter("footer", "enable", "1");
email.addFilter("footer", "text/html", "<p>Thanks,<br/> The IBM Bluemix Team<p>");
email.addFilter("footer", "text/plain", "Thanks,\n IBM Bluemix Team");




如何追踪您发送的电子邮件电子邮件追踪是通过 opentrack 和 clicktrack                                过滤器执行的。它们在您打开电子邮件和单击电子邮件中的超级链接时开始追踪。有关的更多信息,请参阅针对   和   的文档。以下示例演示了单击追踪过滤器。
1
2
email.setHtml("Hello, <p>Please visit <a href='https://ace.ng.bluemix.net'>IBM Bluemix</a>.</p>");
email.addFilter("clicktrack", "enable", "1");




只需数分钟就可以在 SendGrid 的                                  工具中获得电子邮件追踪结果。它通过您的帐户显示了一个最近事件(已交付电子邮件、已启动电子邮件、打开和单击电子邮件事件)列表。要访问该列表,请执行以下操作:
  • 登录到 Bluemix。
  • 在 Bluemix 仪表板中选择您的 SendGrid 服务并单击 LAUNCH SENDGRID                                        DASHBOARD
  • 单击页面顶部的 Email Activity 链接。
    以下示例显示了对打开和单击电子邮件的追踪。
  • 您还可以通过 SendGrid 的   来标记向外发送的电子邮件。您可以使用收集的统计数字来追踪某个特殊的类别。要添加这种类别,只需在                                                com.sendgrid.SendGrid.Email 上调用 addCategory()                                        方法即可。例如:                                               
    1
    email.addCategory("marketing");




    然后,您可以在                                                SendGrid 仪表板的 Categories 选项卡下查看结果。

    以下示例显示了 marketing 类别中的电子邮件打开和单击事件的统计数据。

  • 如果您想用惟一的 ID 来标记您的电子邮件,以便进行追踪,那么您可以使用 SendGrid 的   将惟一的参数附加到您的电子邮件中。您需要添加的所有代码行如下所示:                                               
    1
    email.addUniqueArg(<key>, <val>);




    您可以查看您帐户的                                                Email Activity 选项卡中的惟一参数。
如何使用 Template Engine 和替换标签发送时事通讯SendGrid 的 Template Engine 允许您使用 HTML 和 CSS                                快速创建一个自定义时事通讯,然后将它整合到您的应用程序中。您可以使用嵌入在模板中的替换标签来添加动态内容。关于替换标签的更多信息,请参阅  。
要创建一个电子邮件通讯:
  • 登录到 Bluemix,选择您的 SendGrid 服务并单击 LAUNCH SENDGRID DASHBOARD
  • 单击 Template Engine
  • 选择 Create Template
  • 您可以使用 WYSIWYG 编辑器或 HTML 编辑器创建和修改时事通讯。您还可以通过单击 Test 来预览结果。
  • 在结束上述操作后单击 Save。您会看到在 Templates 页面上的                                                Template ID
  • 以下代码演示了如何使用主体内容中的   将您刚刚创建的模板集成到您的应用程序中。                                               
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    // Create HTML content
    email.setHtml("Hello -name-,<br>");

    // Specify substitution value for the '-name-' tag defined in the HTML body
    String[] val = { "SendGridUser" };
    email.addSubstitution("-name-", val);

    // Enable template
    email.addFilter("templates", "enable", "1");
    email.addFilter("templates", "template_id", "ffce1668-6d89-4687-807d-013ae59d5b79
    ");




  • 以下是一个基于模板的示例电子邮件。
返回列表