一.购买阿里云企业邮箱
1.请老板买企业邮箱(阿里云企业邮箱)
2.登录看是否购买成功(阿里云企业邮箱登录接口)
3.登录成功后新建一个员工邮箱,一般最低的可以新建五个员工邮箱,可以指定需要的域名名称
(好处:新建邮箱可以保证员工邮箱封号的时候不影响主号,并且可以自定义邮件名称,当然也可以不新建!)
4.使用阿里云企业员工邮箱的账号和密码登录,一般第一次登录都是需要更改密码的,然后绑定安全手机号,登录成功即可
二.java后端代码(工具类)
1.导入依赖
<!-- JavaMail API -->
<dependency>
<groupId>javax.mail</groupId>
<artifactId>javax.mail-api</artifactId>
<version>1.6.2</version>
</dependency>
<!-- JavaMail implementation (e.g., for SMTP) -->
<dependency>
<groupId>com.sun.mail</groupId>
<artifactId>javax.mail</artifactId>
<version>1.6.2</version>
</dependency>
2.导入Utils工具类
请把邮箱的账号和密码更换为自己的
其中接收的参数有String字符串类型的邮件内容,String字符串类型的收件人的邮箱(只能发送一个)
import java.util.Properties;
import javax.activation.DataHandler;
import javax.activation.FileDataSource;
import javax.mail.Authenticator;
import javax.mail.BodyPart;
import javax.mail.Message;
import javax.mail.Multipart;
import javax.mail.PasswordAuthentication;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.AddressException;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeBodyPart;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.MimeMultipart;
import javax.mail.internet.MimeUtility;
import org.apache.commons.lang3.StringUtils;
public class ALiYunMailUtil {
private static final String SEND_ADDRESS = "阿里云企业邮箱的账号";
private static final String SEND_PASSWORD = "阿里云企业邮箱的密码";
private static final String HOST = "smtp.qiye.aliyun.com";
private static final String PORT = "25"; // 或80
private static final String SUBJECT = "Email verification code";
private static final String FILE_PATH = null;
private static final String CC = null;
/**
* @param content 邮件内容
* @param internetAddress 收件人地址
* @throws Exception
* @throws AddressException
*/
public static void sendMail(String content, String internetAddress) throws AddressException, Exception {
// 设置SSL连接、邮件环境
// Security.addProvider(new com.sun.net.ssl.internal.ssl.Provider());
// final String SSL_FACTORY = "javax.net.ssl.SSLSocketFactory";
Properties props = System.getProperties();
props.setProperty("mail.smtp.host", HOST);
// props.setProperty("mail.smtp.socketFactory.class", SSL_FACTORY);
props.setProperty("mail.smtp.socketFactory.fallback", "false");
props.setProperty("mail.smtp.port", PORT); // 设置端口
props.setProperty("mail.debug", "true"); // 启用调试
props.setProperty("mail.smtp.socketFactory.port", "465");
props.setProperty("mail.smtp.auth", "true");
// 建立邮件会话
Session session = Session.getDefaultInstance(props, new Authenticator() { // 身份认证
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(SEND_ADDRESS, SEND_PASSWORD); // 发件人账号、密码
}
});
// 建立邮件对象
MimeMessage message = new MimeMessage(session);
// 设置邮件的发件人、收件人、主题
message.setFrom(new InternetAddress(SEND_ADDRESS)); // 发件人账号
message.setRecipients(Message.RecipientType.TO, internetAddress); // 收件人账号
// 标题
message.setSubject(SUBJECT); // 邮件标题
// 内容
Multipart multipart = new MimeMultipart();
BodyPart contentPart = new MimeBodyPart();
// 将内容包装在HTML样式标签中,调整字体粗细
String styledContent = "<html><body><p style='font-weight: normal;'>"
+ content
+ "</p></body></html>";
contentPart.setContent(styledContent, "text/html;charset=utf-8"); // 邮件内容
multipart.addBodyPart(contentPart);
// 附件部分
if (StringUtils.isNotBlank(FILE_PATH)) {
BodyPart attachPart = new MimeBodyPart();
FileDataSource fileDataSource = new FileDataSource(FILE_PATH); // 附件地址 D:/题库上传模板v1.xlsx
attachPart.setDataHandler(new DataHandler(fileDataSource));
attachPart.setFileName(MimeUtility.encodeText(fileDataSource.getName()));
multipart.addBodyPart(attachPart);
}
message.setContent(multipart);
// 抄送地址
if (StringUtils.isNotBlank(CC)) {
InternetAddress[] internetAddressCC = new InternetAddress().parse(CC);
message.setRecipients(Message.RecipientType.CC, internetAddressCC);
}
// 发送邮件
Transport.send(message);
}
}
三.简单测试
注意:发送邮件请避免使用外网,可能会导致安全模式开启(封号_亲身经历)
使用main方法测试发送邮件
public static void main(String[] args) {
String emailInfo ="你好同学";
String emails = "791385397@qq.com";
try {
ALiYunMailUtil.sendMail(emailInfo, emails);
} catch (Exception e) {
throw new BaseException("Sorry, but there are many people using it at the moment, so please try again later");
}
}
发送成功
有问题请家人们及时指导,谢谢!