zoukankan      html  css  js  c++  java
  • SendGrid模板使用方式一

    特别提示:本人博客部分有参考网络其他博客,但均是本人亲手编写过并验证通过。如发现博客有错误,请及时提出以免误导其他人,谢谢!欢迎转载,但记得标明文章出处:http://www.cnblogs.com/mao2080/

    1、问题描述

      使用SendGrid模板Java调用发送样例。

    2、操作方法

    1、相关POM

           <dependency>
               <groupId>com.sendgrid</groupId>
               <artifactId>sendgrid-java</artifactId>
               <version>4.0.1</version>
           </dependency>
           <dependency>
               <groupId>com.alibaba</groupId>
               <artifactId>fastjson</artifactId>
               <version>1.2.62</version>
           </dependency>

    2、sendGrid配置模板

    菜单路径:Email API  -> Dynamic Templates  注意:变量使用{{}} 包起来

    Hi {{name}}
    You have canceled Subscription renewal. The subscription will still be available until {{date}}. Thanks for choosing our service!
    Have questions? Contact US
    {{phone}}

    3、相关Code

    package com.sendgrid;
    
    import com.alibaba.fastjson.JSON;
    import org.springframework.util.StringUtils;
    
    import java.util.Arrays;
    import java.util.HashMap;
    import java.util.Map;
    
    public class SendGridAPI {
    
        public static void main(String[] args) throws Exception {
    		//模板ID
            String templateId = "d-xxxx";
    		//发件人
            String from = "xxxx@qq.com";
    		//收件人
            String to = "mao2080@sina.com";
    		//参数
            Map<String, String> params = new HashMap<>();
            params.put("name", "Jack Chen");
            params.put("date", "2020-04-07");
            params.put("phone", "0755-8888xxx");
    
            try {
    			//SendGrid 秘钥
                String apiKey = "SG.YYY.XXX";
                SendGrid sg = new SendGrid(apiKey);
                Request request = new Request();
                request.setMethod(Method.POST);
                request.setEndpoint("mail/send");
                request.setBody(getEmailContent(from, to, templateId, params));
                Response response = sg.api(request);
                System.out.println(response.getStatusCode());
                System.out.println(response.getBody());
                System.out.println(response.getHeaders());
            } catch (Exception ex) {
                throw ex;
            }
        }
    
        /**
         * 组织邮件内容模板
         * @param from 发件方
         * @param to 收件方
         * @param templateId 模板ID
         * @param params 参数
         * @return
         */
        private static String getEmailContent(String from, String to, String templateId, Map<String, String> params){
            Map<String, Object> dataMap = new HashMap<>();
            dataMap.put("from", new Email(from));
            dataMap.put("template_id", templateId);
            Map<String, Object> persMap = new HashMap<>();
            persMap.put("to", Arrays.asList(new Email(to)));
            persMap.put("dynamic_template_data", params);
            dataMap.put("personalizations", Arrays.asList(persMap));
            return JSON.toJSONString(dataMap);
        }
    }

    3、其他方式

      https://www.cnblogs.com/mao2080/p/12655939.html

    4、参考网站

      https://github.com/sendgrid/sendgrid-java/blob/master/USE_CASES.md

  • 相关阅读:
    git查看工作状态和历史提交
    PowerDesigner工具栏palette的方法
    WCF证书制作
    ASP.NET.4 高级程序第4版 第3章Web窗体
    tbar居右显示的两种方法
    测试
    转载extj grid
    正值
    网站HTML,XHTML,XML,WML,CSS等测试验证工具介绍[转]
    SQL Server 启用“IP+端口”连接
  • 原文地址:https://www.cnblogs.com/mao2080/p/12655793.html
Copyright © 2011-2022 走看看