当前位置: 首页 > 后端技术 > Java

SendGrid邮件通道对接

时间:2023-04-01 22:52:39 Java

SendGrid对接教程(Java版)前言最近由于工作需要,需要对接SendGrid邮件通道。厂商自己也在网上找了很多资料,发现大部分资料都是零碎的,没有完整的教程。自己也摸索了一段时间,所以把对接的过程分享给大家,并留个备注,以后可能对自己有用(如有错别字,请留言指正,谢谢).另外,由于本人主要从事Java语言开发,本文主要以Java代码作为案例,其他语言也应作为参考。对接依赖首先是maven依赖com.sendgridsendgrid-java4.9.0只需要依赖一个单一jar包,无其他依赖Sender认证认证地址:https://app.sendgrid。com/sett...认证的主要功能是当你认证之后,特定的邮件会发给sneder。有两种验证个人身份验证的方法。personalauthentication如果是个人认证,发件人是固定的,比如:你认证了achuang@163.com的发件人,发件人只能是achuang@163.com域名认证。一般公司会采用这种方式进行认证。com等以认证域名结尾的发件人可以作为发件人发送邮件AppKey设置在使用api之前,我们需要配置生成一个appKey设置appKey地址(需要登录):https://app.sendgrid。com/sett...因为涉及到后台操作,这里就不截图了,其实很简单,有问题可以留言。SMTP对接对于对接api,简单说明一下。对接api也分不同的版本:V2版本和V3版本分不同的版本,不过好在我们只需要引入上面提到的依赖即可。接下来我们就来看看V2版本在这两种方式下的使用方法吧。privatestaticvoidsendEmail()throwsIOException{StringapiKey="后台appkey,具体查看appKey设置";Emailfrom=newEmail("发件人邮箱地址");Stringsubject="邮件主题";Emailto=newEmail("收件人邮箱");Contentcontent=newContent("text/html","

并且在任何地方都很容易做到,即使使用Java

");Mailmail=newMail(from,subject,to,content);SendGridsg=newSendGrid(apiKey);请求request=newRequest();request.setMethod(Method.POST);request.setEndpoint("mail/send");//注意这个类型,不要修改request.setBody(mail.build());//设置请求体Responseresponse=sg.api(request);//发送请求System.out。println(response.getStatusCode());System.out.println(response.getBody());System.out.println(response.getHeaders());}V3版本@SneakyThrowsprivatestaticvoidsendEmailV3(){StringapiKey="后台appkey,检查appKey设置";SendGridsg=newSendGrid(apiKey);请求request=newRequest();request.setMethod(Method.POST);request.setEndpoint("/邮件/发送");//创建邮件Mailmail=newMail();个性化personalization1=newPersonalization();personalization1.addTo(newEmail("收件人邮箱地址","收件人姓名"));personalization1.addCustomArg("version","1.0");//注意:自定义参数会在回调中返回mail.addPersonalization(personalization1);mail.setFrom(newEmail("Sender'semail","sendername));mail.setSubject("YourExampleOrderConfirmation");//contentobjectContentcontent=newContent();content.setType("text/html");content.setValue("

来自TwilioSendGrid的问候!

使用开发人员和营销人员信任的电子邮件服务发送以节省时间可扩展性,以及交付专业知识

%open-track%

");mail.addContent(content);request.setBody(mail.build());Responseresponse=sg.api(request);System.out.println(response.getStatusCode());System.out.println(response.getBody());System.out.println(response.getHeaders());}V3版本的操作空间比V2版本高很多,上面的代码中只有一些个人需要的代码,其他的功能如附件,cc,和自己批量发送,邮件的发送应该结束了,接下来我们看callback回调地址配置,我们想让SendGrid给我们回调,是不是需要给它提供一个回调的孔(回调是SendGrid中官方叫EventWebhook)我们可以直接在后台配置回调地址:https://app.sendgrid.com/sett...配置的时候有个AuthorizationMethod,如果不选None,可以还要选择你需要订阅的事件类型,比如:打开,点击和拒绝等内容分析回调的Content格式参考:https://docs.sendgrid.com/for...我贴出了一部分代码这里@SneakyThrowsprivatevoiddoCallBack(SendGridEmailNoticeMessagemessage){switch(message.getEvent()){case"delivered"://arrivaldoDelivered(message);休息;案例“反弹”://拒绝做弹跳(消息);休息;case"unsubscribe"://unsubscribedoUnsubscribe(message);休息;默认值:log.error("不支持的SendGrid事件类型:{}",JsonUtils.toString(message));}}可以根据自己的需要处理自己的业务逻辑。另外:如果返回的内容缺少需要的数据,发送时可以自定义方式发送。相关链接请在下方留言。请注意,您需要一个梯子。官网:https://sendgrid.com/登录:https://app.sendgrid.com/事件回调消息:https://docs.sendgrid.com/for...错误检查:https://www.thinbug.com/q/422...对接API入口:https://docs.sendgrid.com/for...自定义参数:https://docs.sendgrid.com/for...邮件发送文档:https://docs.sendgrid.com/api...设置appKey:https://app.sendgrid.com/sett...发送者认证地址:https://app.sendgrid.com/sett...配置回调地址:https://app.sendgrid.com/sett...