100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > Java实现阿里云企业邮箱发送邮件

Java实现阿里云企业邮箱发送邮件

时间:2021-05-17 01:31:40

相关推荐

Java实现阿里云企业邮箱发送邮件

Java实现阿里云企业邮箱发送邮件

先了解一下基本的配置元素概念:

POP3:

POP3是Post Office Protocol3 的简称, 即邮局协议的第3个版本, 它规定怎样将个人计算机连接到 Internet 的邮件服务器和下载电子邮件的保密协议。它是因特网电子邮件的第一个离线协议标准, POP3允许用户从服务器上把邮件存储到本地主机(自己的计算机上), 同时删除保存在邮件服务器上的邮件, 而POP3服务器则是遵循POP3协议的接收邮件服务器, 用来接收电子邮件的。

SMTP:

SMTP的全称是"Simple Mail Transfer Protocol", 即简单邮件传输协议。它是一组用于从源地址到目的地址传输邮件的规范, 通过它来控制邮件的中转方式。SMTP 协议属于 TCP/IP协议簇, 它帮助每台计算机在发送或中转信件时找到下一个目的地。SMTP服务器就是遵循SMTP协议发送邮件的服务器。SMTP 认证, 简单说就是要求必须在提供账户名和密码之后才可以登陆SMTP服务器, 这就使得那些垃圾邮件的散播者无可乘之机。增加SMTP认证的目的是为了使用户避免收到垃圾邮件的干扰。

代码实现流程

引入的包

<dependency><groupId>javax.mail</groupId><artifactId>mail</artifactId><version>1.4.7</version></dependency>

邮箱信息配置文件

smtpServer=port=465fromUserName=你的阿里邮箱账号fromUserPassword=你的邮箱密码

这里注意, 如果你使用的是阿里的企业邮箱, 应该使用企业的域名地址:

邮箱实体类(设置邮箱, 邮件的相关信息)

public class EmailInfo {private final String SSL_FACTORY = ".ssl.SSLSocketFactory";private String smtpServer; // SMTP服务器地址private String port; // 端口private String fromUserName; // 登录SMTP服务器的用户名,发送人邮箱地址private String fromUserPassword; // 登录SMTP服务器的密码private String toUser; // 收件人private String subject; // 邮件主题private String content; // 邮件正文public EmailInfo() {}public EmailInfo(String toUser, String subject, String content) {this.toUser = toUser;this.subject = subject;this.content = content;this.smtpServer = Global.getConfig("smtpServer");//Global 获取配置文件信息this.port = Global.getConfig("port");this.fromUserName = Global.getConfig("fromUserName");this.fromUserPassword = Global.getConfig("fromUserPassword");}//get、set方法略}

发送邮件的工具类

public class EmailUtil {public static boolean sendHtmlMail(EmailInfo emailInfo) {Properties properties = new Properties();properties.put("mail.smtp.host", emailInfo.getSmtpServer());properties.put("mail.transport.protocol", "smtp");properties.put("mail.smtp.auth", "true");properties.put("mail.smtp.socketFactory.class", ".ssl.SSLSocketFactory"); // 使用JSSE的SSLproperties.put("mail.smtp.socketFactory.fallback", "false"); // 只处理SSL的连接,对于非SSL的连接不做处理properties.put("mail.smtp.port", emailInfo.getPort());properties.put("mail.smtp.socketFactory.port",emailInfo.getPort());Session session = Session.getInstance(properties);session.setDebug(true);MimeMessage message = new MimeMessage(session);try {// 发件人Address address = new InternetAddress(emailInfo.getFromUserName());message.setFrom(address);// 收件人Address toAddress = new InternetAddress(emailInfo.getToUser());message.setRecipient(MimeMessage.RecipientType.TO, toAddress); // 设置收件人,并设置其接收类型为TO// 主题message.setSubject(emailInfo.getSubject());// 时间message.setSentDate(new Date());Multipart multipart = new MimeMultipart();// 创建一个包含HTML内容的MimeBodyPartBodyPart html = new MimeBodyPart();// 设置HTML内容html.setContent(emailInfo.getContent(), "text/html; charset=utf-8");multipart.addBodyPart(html);// 将MiniMultipart对象设置为邮件内容message.setContent(multipart);message.saveChanges();} catch (Exception e) {e.printStackTrace();return false;}try {Transport transport = session.getTransport("smtp");transport.connect(emailInfo.getSmtpServer(), emailInfo.getFromUserName(), emailInfo.getFromUserPassword());transport.sendMessage(message, message.getAllRecipients());transport.close();} catch (Exception e) {e.printStackTrace();return false;}return true;}}

测试

public static void main(String[] args) {EmailInfo info = new EmailInfo("1122211122@", Global.getConfig("email_user_add_subject"), "<p>这是一个测试邮件</p>");EmailUtil.sendHtmlMail(info);}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。