任务 3 java.mail方式发送邮件
任务目标
使用 java 方式编写 java.mail 发送邮件相关程序,实现在 java 端编写和发送邮件的功能。
任务步骤
1.配置 java 开发环境
配置 java 开发环境可参考腾讯云社区文章《java 环境之 JDK 配置》。
https://cloud.tencent.com/developer/article/1510025
可使用 COS 网址中的安装包安装 JDK 应用程序。
验证 java 开发环境是否配置成功,可点击 Windows 键+R,输入“cmd”打开 cmd 端,输入命令:
java -version点击回车键,查看到 java 版本,即配置 java 开发环境成功。
2.安装 java 开发编辑工具 IntelliJ IDEA
可通过在 IntelliJ IDEA 官网上等方式下载 IntelliJ IDEA 编辑工具。
IntelliJ IDEA 官网网址:https://www.jetbrains.com/idea/
双击打开 IntelliJ IDEA,出现以下页面,即安装完成。
3.创建java项目
安装完成后打开,出现下面的页面,此时选择【Create New Project】选项,创建一个新项目。
在左侧导航栏中选择【Maven】,并设置 SDK,即选择 JDK 路径。
设置项目名称和项目在本地的地址,然后点击【Finish】。
打开页面,在页面右下角弹出引入依赖包的选项,选择【Enable Auto-Import】。
在 java 文件夹下创建 email 包和 sendEmail 类。
点击打开【pom.xml】文件,加入依赖 javax.mail,代码如下:
<dependencies>
<dependency>
<groupId>com.sun.mail</groupId>
<artifactId>javax.mail</artifactId>
<version>1.5.5</version>
</dependency>
</dependencies>打开 sendEmail 类,复制粘贴加入代码,完成实现 java.mail 发送邮件的逻辑程序。代码如下:
private static boolean send_qqmail(String strMail, String strTitle, String strText){
boolean bret = false;
try {
final Properties props = new Properties();
props.put("mail.smtp.auth", "true");
props.put("mail.smtp.host", "smtp.qq.com");
//你自己的邮箱
props.put("mail.user", "XXXXXXXX@qq.com");
//你开启pop3/smtp时的验证码
props.put("mail.password", "XXXXXXXXXXXX");
props.put("mail.smtp.port", "25");
props.put("mail.smtp.starttls.enable", "true");
Authenticator authenticator = new Authenticator() {
protected PasswordAuthentication getPasswordAuthentication() {
String userName = props.getProperty("mail.user");
String password = props.getProperty("mail.password");
return new PasswordAuthentication(userName, password);
}
};
// 使用环境属性和授权信息,创建邮件会话
Session mailSession = Session.getInstance(props, authenticator);
// 创建邮件消息
MimeMessage message = new MimeMessage(mailSession);
// 设置发件人
String username = props.getProperty("mail.user");
InternetAddress form = new InternetAddress(username);
message.setFrom(form);
InternetAddress to = new InternetAddress(strMail);
message.setRecipient(Message.RecipientType.TO, to);
// 设置邮件标题
message.setSubject(strTitle);
// 设置邮件的内容体
message.setContent(strText, "text/html;charset=UTF-8");
// 发送邮件
Transport.send(message);
bret = true;
}
catch (AddressException e) {
e.printStackTrace();
}
catch (MessagingException e) {
e.printStackTrace();
}
catch (Exception e){
e.printStackTrace();
}
return bret;
}
public static void main(String[] args) {
//“strMail”填写要发送的邮箱,“strTitle”填写邮件主题,“strText”填写邮件内容
if (send_qqmail("XXXXXXXX@qq.com", "测试QQ邮箱发送", "<body><p>你好吗</p></body>"))
System.out.println("QQ邮件发送成功");
}复制粘贴后自动引入依赖包,页面如下:
注意:
- “XXXXXXXX@qq.com”填写自己的邮箱,也就是开启 pop3/smtp 服务的邮箱
//你自己的邮箱
props.put("mail.user", "XXXXXXXX@qq.com");- “XXXXXXXXXXXX”填写任务 2 中保存的 pop3/smtp 的验证码
//你开启 POP3/SMTP 时的验证码
props.put("mail.password", "XXXXXXXXXXXX");- “XXXXXXXX@qq.com”填写要发送的目标邮箱;“<body><p>你好吗</p></body>”填写邮件内容
//“strMail”填写要发送的邮箱,“strTitle”填写邮件主题,“strText”填写邮件内容
if (send_qqmail("XXXXXXXX@qq.com", "测试QQ邮箱发送", "<body><p>你好吗</p></body>"))点击运行。
在控制台查看到输出“QQ 邮件发送成功”的字样,表示邮件发送成功。
4.实验验证
登录目标邮箱或联系目标邮箱持有者,查看是否收到已发送的邮件。
已收到邮件,邮件发送成功。
学员评价