使用JavaMail群发邮件
来源:互联网 发布:淘宝如何设置分享有赏 编辑:程序博客网 时间:2024/06/05 20:19
很多时候我们有群发邮件的需求,虽然大多数邮箱都支持群发功能,但是还是有点繁杂,JavaMail提供的API功能强大,可能很方便的解决我们的问题
下面我们就开始来写我们的代码吧
首先需要准备好下面两个jar包
用于获得收件人的方法:
public String[] getRecipients() { File recipientsFile = new File("E:Recipients.txt"); InputStream in = null; BufferedReader br = null; try { in = new FileInputStream(recipientsFile); br = new BufferedReader(new InputStreamReader(in)); String line = null; StringBuilder builder = new StringBuilder(); // 读入联系人 while ((line = br.readLine()) != null) { builder.append(line); builder.append(","); } // 将联系人分割为数组返回 return builder.toString().split(","); } catch (IOException e) { e.printStackTrace(); } finally { try { if (br != null) br.close(); if (in != null) in.close(); } catch (IOException e) { e.printStackTrace(); } } return null; }
用于发送邮件的方法:
public void sendGroupMail() throws AddressException, MessagingException { // 得到Session Properties props = new Properties(); props.setProperty("mail.host", "smtp.163.com"); props.setProperty("mail.smtp.auth", "true"); Authenticator authenticator = new Authenticator() { @Override protected PasswordAuthentication getPasswordAuthentication() { //邮箱的用户名和密码 return new PasswordAuthentication("gyx2110", "********"); } }; Session session = Session.getInstance(props, authenticator); //发送邮件 MimeMessage message = new MimeMessage(session); message.setFrom(new InternetAddress("gyx2110@163.com")); String[] recipients = getRecipients(); for (String rec : recipients) { //设置收件人 message.setRecipient(RecipientType.TO, new InternetAddress(rec)); //设置标题 message.setSubject("JavaMail测试邮件!"); //设置正文 message.setContent("群发邮件,如有打扰请见谅!", "text/html;charset=utf-8"); //发送 Transport.send(message); } }
值得一提的是我们群发的时候为了隐私,这里使用的发送方式是逐条发送,而不是批量发送,这样在正文页面就看不到有哪些人收到这封邮件了。
到这里我们只是发送了普通文体信息,大多数时我们的邮件是带有附件的,下面的我们来为邮件中添加附件。
添加附件的方法:
public void setMultipart(MimeMessage msg) throws MessagingException, IOException { // 一个Multipart对象包含一个或多个BodyPart对象,来组成邮件的正文部分(包括附件)。 MimeMultipart multiPart = new MimeMultipart(); // 添加正文 MimeBodyPart partText = new MimeBodyPart(); partText.setContent("这是一封含有附件的群发邮件!", "text/html;charset=utf-8"); // 添加文件 也就 是附件 MimeBodyPart partFile = new MimeBodyPart(); File file = new File("E:mail.jar"); partFile.attachFile(file); // 设置在收件箱中和附件名 并进行编码以防止中文乱码 partFile.setFileName(MimeUtility.encodeText(file.getName())); multiPart.addBodyPart(partText); multiPart.addBodyPart(partFile); msg.setContent(multiPart); }
发送带附件的邮件:
public void sendMultipartMail() throws AddressException, MessagingException, IOException { // 得到Session Properties props = new Properties(); props.setProperty("mail.host", "smtp.163.com"); props.setProperty("mail.smtp.auth", "true"); Authenticator authenticator = new Authenticator() { @Override protected PasswordAuthentication getPasswordAuthentication() { // 邮箱的用户名和密码 return new PasswordAuthentication("gyx2110", "********"); } }; Session session = Session.getInstance(props, authenticator); // 发送邮件 MimeMessage message = new MimeMessage(session); message.setFrom(new InternetAddress("gyx2110@163.com")); // 设置收件人 message.setRecipient(RecipientType.TO, new InternetAddress( "gyx2110@sina.com")); // 设置标题 message.setSubject("JavaMail带附件的测试邮件!"); // 设置邮件主体 setMultipart(message); // 发送 Transport.send(message); }
阅读全文
0 0
- 使用JavaMail群发邮件
- JavaMail--群发HTML邮件
- javaMail实现邮件发送,群发功能
- javaMail发送邮件(支持单发、群发)
- 使用Python3群发邮件
- javaMail Java实现邮件发送,群发功能,java发送邮件
- javaMail Java实现邮件发送,群发功能,java发送邮件
- JavaMail 群发
- 使用JavaMail收发邮件
- 使用JavaMail发送邮件
- 使用JavaMail接收邮件
- 使用JavaMail发送邮件
- 使用javamail发送邮件
- 使用javaMail发送邮件
- 使用JavaMail发送邮件
- 使用JavaMail接收邮件
- 使用javaMail发送邮件
- 使用JavaMail发送邮件
- codeforces B. Petya and Exam (模拟)
- python中的生成器和迭代器
- 手机端网页自适应声明
- 2017年1000集大型Web前端视频教程
- 前端开发者必会的20个JavaScript试题
- 使用JavaMail群发邮件
- 函数调用、方法调用及构造函数调用之间的不同
- scala进阶
- poi读取excel(xls,xlsx)
- 设计模式之-外观模式
- java.lang包
- Android 文本输入框 获取焦点和设置光标到末尾
- 让IE6、IE7、IE8支持CSS3的圆角、阴影样式-最好的插件
- Cannot open Redis connection due invalid URI