JavaMail 使用POP3/SMTP服务发送QQ邮件

一、说明

邮件服务器

    为用户提供接收邮件的功能, 有发邮件的SMTP服务器,收邮件的POP3服务器

电子邮箱

    用户在邮件服务器上申请的账户

邮件客户端

    通常使用IMAP/APOP/POP3/SMTP协议收发电子邮件的软件

邮件传输协议

    SMTP协议(Simple Mail Transfer Protocol)简单邮件传输协议(默认端口25),邮件客户端和SMTP邮件服务器之间通信规则 POP/POP3协议(Post Office Protocol)邮件接收协议(默认端口110),把存储在POP协议邮件服务器的邮件下载到用户计算机中,但不能对邮件进行在线操作 IMAP协议(Internet Message Access Protocol)Internet消息访问协议(默认端口143),可以通过客户端直接对服务器上的邮件在线操作

邮件发送基本流程

二、理解

Session类

    定义邮件配置信息

Message类

    实例对象表示一份电子邮件

Transport类

    实现邮件发送协议对象

Store类

    实现邮件接受协议对象

三、实现

1.导入jar包

使用Java应用程序发送E-mail需要JavaMail API 和Java Activation Framework (JAF)

JavaMail jar包下载: Java activation jar 包下载:

2.用户认证

什么是授权码?

怎么获取授权码?

设置用户认证以及SSL加密

3.发送邮件

创建步骤

    配置连接邮件协议、服务器参数 设置用户认证,获取session对象 设置发件人,收件人 创建邮件MimeMessage 对象 设置邮件标题,正文,附件等 发送邮件

简单的Email

创建SendEmail类,发送一封简单的Email

带HTML的E-mail

使用 .setContent() 方法设置HTML内容,发送一封 HTML E-mail

message.setContent(
                    "<h1>You Have a Promotion</h1> " +
                            "<h3>Your First Name :</h3>" +
                            "<h3>Your Last Name :</h3>" +
                            "<h5>Your Employee ID :</h5>" ,
                    "text/html");

带图片的Email

    DataHandler 类为在多种不同源和格式下可用的数据提供一致的接口 文字附带图片MimeMultipart的类型必须是related 图片的显示方式Disposition必须为INLINE 必须明确指定Content-Type头信息(Content-Type,image/png)

包含附件的邮件

如果还需添加收件人或抄送人,.addRecipient()方法即可,To收件人 CC 抄送 BCC密送

经验分享 程序员 微信小程序 职场和发展