在生活中,我们在编写 java 代码时,一般都会 try...catch 包裹住可能会出现异常的代码块。但如果在一个java项目过大,同时又出现了bug时,这很不利于我们来查错。
所以我们就可以使用邮件,可以自己写一个邮件工具类,使用 try...catch 处理时,就可以使用邮件类每次发现问题时,向指定的邮箱发送一封邮件。
邮件工具类除了以上的用法,我们也可以自己写个QQ邮件群发。
首先是需要把邮件工具类给写出来:这里使用IDEA,首先创建一个 Maven 项目:
然后,就会出现一个工程目录。找到 pom.xml 这个文件,打开它,并在其中添加一段代码:
4.0.0 org.example e-mailSystem1.0-SNAPSHOT 8 8 org.apache.commons commons-email1.5
当代码添加完成之后,就可以编写自己的邮件发送工具类了。
import org.apache.commons.mail.EmailException;
import org.apache.commons.mail.SimpleEmail;
public class SendMailTools {
public static boolean sendMail(String toUser, String fromUser,
String fromUserPassWord, String theme,
String content){
//实例化邮件资源
SimpleEmail email = new SimpleEmail();
//设置qq邮件服务器的端口号
email.setSslSmtpPort("465");
//使用QQ邮箱的固定写法
email.setHostName("smtp.qq.com");
//设置发件人的账户和POP3/SMTP服务密码
email.setAuthentication(fromUser, fromUserPassWord);
//编码方式
email.setCharset("UTF-8");
try {
//收件人
email.addTo(toUser);
//发件人
email.setFrom(fromUser);
//邮件主题
email.setSubject(theme);
//邮件内容
email.setMsg(content);
//发送
email.send();
return true;
} catch (EmailException e) {
e.printStackTrace();
return false;
}
}
}
最后就是测试使用我们这个邮件工具类了。
import java.io.BufferedReader;
import java.io.FileReader;
public class Test {
public static void main(String[] args) {
String toFrom = "xxxxxxxxxx@qq.com"; //发件人
String toFromPassWord = "xxxxxxxxxxxxxxxx"; //发件人邮箱POP3/SMTP服务密码
String theme = "这是一封测试邮件"; //邮件主题
String content = "hello word!~~~"; //邮件具体内容
try(
FileReader fs = new FileReader("toUser.txt");//字符流,默认当前项目下的文本文件
BufferedReader br = new BufferedReader(fs); //字符装饰流
){
String ret = null;
//循环读取,每次读一行
while((ret = br.readLine())!=null){
//发送成功提示一下
if(SendMailTools.sendMail(ret,toFrom,toFromPassWord,theme,content)){
System.out.println("发送成功》》》");
}else{
System.out.println("失败!!!");
}
}
}catch (Exception e){
e.printStackTrace();
}
}
}
这里我使用的是从一个 txt 文本文件中读取收件人的邮箱,然后发送。发件人则是固定的。大家在写这个代码时,有兴趣的可以将发件人也使用文件的方式读取,更可以将主题和内容也使用文件读取后发送。
程序运行结果:
最后说一下邮箱POP3/SMTP服务密码在哪儿?注意:由于我们这里使用的是QQ邮箱的服务区,所以在同一时间这里可能发送成功了,但是收件人有的可能会收不到,而想要避免这个Bug,两个方法:
1.在同一时间内发送邮件的数量尽量减少
2.使用自己的服务器或者是第三方的服务器



