我觉得我们了解一项技术首先要了解这项技术的背景,虽然这对我们的编程技术影响不大,但人生并不只是追求效率,也要追求品质
sendGird介绍
SendGrid 是一个电子邮件服务平台,可以帮助市场营销人员跟踪他们的电子邮件统计数据。致力于帮助公司管理事务性邮件,包括航运通知、简报和注册确认等。
SendGrid 发端于 API 经济,其电子邮件平台是数字客户通信的引力中心。2009年,三位创始人希望为用户带来更好的发送电子邮件的方式,于是创建了首个基于云计算的电子邮件通信平台。从那时起,SendGrid 就开始提供易于使用的 API 和可扩展的电子邮件服务。随着公司的客户群的多样化, SendGrid 还开发了广泛的电子邮件营销产品,用于强化营销人员轻松发送促销信息的能力,最近推出的专家服务(Expert Services)旨在帮助所有客户能够通过电子邮件建立更有效地沟通。
——来源:306百科
Sendgrid(https://sendgrid.com/),云邮件管理公司,是一个帮助企业用户管理、发送电子邮件的平台,该平台能够为用户电子邮件服务提供了安全可靠、可扩展的基础架构。SendGrid帮助企业用户处理邮件订阅、管理和反馈等事宜。同时SendGrid为用户提供分析服务,为用户提供关于电子邮件的跟踪请求、响应、垃圾邮件报告、无效电子邮件反馈、点击统计以及退订等诸多管理服务。
我们为什么要用sendGird
其实java中集成了发送邮件的工具(org.springframework.mail),虽然操作毕竟简单但是有很多局限性,比如无法发送附件,只能配单独的邮箱(smtp只能配一个)以至于发送邮箱只能用一种邮箱,所以导致qq邮箱无法给163发送邮件的局限性(举个例子)
而sendGird相当于一个代理商,我们把邮件发送到sendGird,让他来代替我们去给用户发送邮箱。
废话少说,上代码
springboot使用sendGird
首先我们在使用sendGird之前要在sendGird的官网申请apiKey和fromEmail(这个东西我没弄过,找公司相关人员要的所以我也不知道具体在哪弄,sendGird又是外国的,进官网又慢,我也懒得看了),官网地址:SendGrid
我们最好是在配置文件中加入apiKey和fromEmail(包不要导错了哦)
package com.rz.mobile.email;
import com.sendgrid.Method;
import com.sendgrid.Request;
import com.sendgrid.Response;
import com.sendgrid.SendGrid;
import com.sendgrid.helpers.mail.Mail;
import com.sendgrid.helpers.mail.objects.Content;
import com.sendgrid.helpers.mail.objects.Email;
import com.sendgrid.helpers.mail.objects.Personalization;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
import java.io.IOException;
@Component
public class SendEmail{
@Value("${spring.mail.username}")
private String sendMailer;
@Value("${twilio.apikey}")
private String apikey;
@Value("${twilio.fromemail}")
private String fromEmail;
/**
*
* @param emailMessage 邮箱内容
* @param setTo 目标邮箱
*/
public void sendSimpleMail(String emailMessage,String setTo){
Email from = new Email(fromEmail);
Mail mail = new Mail();
Personalization personalization = new Personalization();
/*
如果发送多人的话可多次创建Email并add到Personalization
*/
Email to = new Email(setTo);
personalization.addTo(to);
mail.addPersonalization(personalization);
//邮件支持html格式,默认为text,text/html
String type = "text/plain";
Content content = new Content(type,emailMessage);
mail.setFrom(from);//发送邮箱
mail.setSubject("客餐预定审批邮件");//主题
mail.addContent(content);//内容
SendGrid sg = new SendGrid(apikey);
Request request = new Request();
try {
request.setMethod(Method.POST);
request.setEndpoint("mail/send");
request.setBody(mail.build());
Response response = sg.api(request);
}catch (IOException e){
e.printStackTrace();
}
}
}