700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > java mail 群发(单发)邮件功能(腾讯企业邮箱)

java mail 群发(单发)邮件功能(腾讯企业邮箱)

时间:2018-12-01 05:42:23

相关推荐

java mail 群发(单发)邮件功能(腾讯企业邮箱)

java 代码

import com.sun.mail.util.MailSSLSocketFactory;import org.junit.Test;import javax.mail.*;import javax.mail.internet.*;import java.security.GeneralSecurityException;import java.util.ArrayList;import java.util.Date;import java.util.List;import java.util.Properties;/*** 腾讯企业邮箱发送邮件功能* @author chenchbj*/public class MailQqController {/*** @param sendMailAccount 发送邮件* @param sendMailPassword 发送邮件密码* @param receiveMailAccount 收件邮件* @param subject 标题* @param content 内容*/public static void sendMail(String sendMailAccount, String sendMailPassword, String receiveMailAccount, String subject, String content) {Properties prop = new Properties();//协议prop.setProperty("mail.transport.protocol", "smtp");//服务器prop.setProperty("mail.smtp.host", "smtp.");//端口prop.setProperty("mail.smtp.port","465");//使用smtp身份验证prop.setProperty("mail.smtp.auth","true");//企业邮箱必须要SSLMailSSLSocketFactory sf = null;try {sf = new MailSSLSocketFactory();sf.setTrustAllHosts(true);} catch (GeneralSecurityException e1) {e1.printStackTrace();}prop.put("mail.smtp.ssl.enable", "true");prop.put("mail.smtp.ssl.socketFactory", sf);//获取Session对象Session s = Session.getDefaultInstance(prop, new Authenticator() {//此访求返回用户和密码的对象@Overrideprotected PasswordAuthentication getPasswordAuthentication() {PasswordAuthentication pa = new PasswordAuthentication(sendMailAccount, sendMailPassword);return pa;}});//设置session的调试模式,发布时取消s.setDebug(true);MimeMessage mimeMessage = new MimeMessage(s);try {// 发信邮箱mimeMessage.setFrom(new InternetAddress(sendMailAccount));// 收信邮箱// 单个发送//mimeMessage.addRecipient(Message.RecipientType.TO, new InternetAddress(receiveMailAccount));// 群发mimeMessage.addRecipients(Message.RecipientType.TO,addressMails(receiveMailAccount));//设置主题mimeMessage.setSubject(subject);//邮件标题mimeMessage.setSentDate(new Date());//设置内容//mimeMessage.setText("内容");//邮件内容//设置内容/* 创建用于组合邮件正文和附件的MimeMultipart对象 */MimeMultipart multipart = new MimeMultipart();// 设置HTML内容MimeBodyPart content1 = createContent(content);multipart.addBodyPart(content1);// 将组合的MimeMultipart对象设置为整个邮件的内容,要注意调用saveChanges方法进行更新mimeMessage.setContent(multipart);mimeMessage.saveChanges();//发送Transport.send(mimeMessage);} catch (MessagingException e) {e.printStackTrace();} catch (Exception e) {e.printStackTrace();}}public static InternetAddress[] addressMails(String receiveMails) {//多个接收账号// String str = "xxx@,xxx@";InternetAddress[] address = null;try {List list = new ArrayList();//不能使用string类型的类型,这样只能发送一个收件人String[] median = receiveMails.split(",");//对输入的多个邮件进行逗号分割for (int i = 0; i < median.length; i++) {list.add(new InternetAddress(median[i]));}address = (InternetAddress[]) list.toArray(new InternetAddress[list.size()]);} catch (AddressException e) {e.printStackTrace();}return address;}/*** 创建HTML格式的邮件内容* @param body 邮件内容* @return 邮件内容实体* @throws Exception*/public static MimeBodyPart createContent(String body) throws Exception {/* 创建代表组合MIME消息的MimeMultipart对象和该对象保存到的MimeBodyPart对象 */MimeBodyPart content = new MimeBodyPart();// 创建一个MImeMultipart对象MimeMultipart multipart = new MimeMultipart();// 创建一个表示HTML正文的MimeBodyPart对象,并将它加入到前面的创建的MimeMultipart对象中MimeBodyPart htmlBodyPart = new MimeBodyPart();htmlBodyPart.setContent(body, "text/html;charset=UTF-8");multipart.addBodyPart(htmlBodyPart);// 将MimeMultipart对象保存到MimeBodyPart对象中content.setContent(multipart);return content;}@Testpublic void Test(){sendMail("发送邮箱@","密码","接收1@,接收2@","邮件标题","内容");}

maven项目pom.xml中引入jar

<!--邮箱--><dependency><groupId>javax.activation</groupId><artifactId>activation</artifactId><version>1.1.1</version></dependency><dependency><groupId>javax.mail</groupId><artifactId>mail</artifactId><version>1.4.7</version></dependency><!--如果使用spring的发邮件,还需要添加依赖:--><dependency><groupId>org.springframework</groupId><artifactId>spring-context-support</artifactId><version>${org.springframework.version}</version></dependency>

spring-context-support版本

<org.springframework.version>4.2.4.RELEASE</org.springframework.version>

1[^2]

备注:如果腾讯企业邮箱设置了只能接收功能,没有开启发送功能则会报错503或者511等,需要开启客户端登录密码,腾讯方面自动生成的密码。

[^2] java 发送邮件 网易163邮箱:java 单发群发邮件功能 网易邮箱 ↩︎

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。