在生活中,我们在编写 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.使用自己的服务器或者是第三方的服务器
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)