JavaMail--群发HTML邮件

上一篇博客将的是emailHtml来发送html格式的邮件,那么现在我们就用javaMail来群发一份html格式的邮件

package com.tgb.email;

import java.io.UnsupportedEncodingException;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Properties;

import javax.activation.DataHandler;
import javax.activation.FileDataSource;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.Multipart;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.AddressException;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeBodyPart;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.MimeMultipart;
import javax.mail.internet.MimeUtility;

public class MailUtils {
    private static String host;
    private static String username;
    private static String password;
    private static String from;
    private static String nick;

    static {
        try {
            // Test Data
            host = "smtp.163.com";
            username = "***@163.com"; //用户名,一般就是咱们的邮箱地址
            password = "***";          //登陆密码
            //nick + from 组成邮箱的发件人信息
            from = "****@163.com";     //邮箱账号
            nick = "ermu测试邮件";          //发件人名称    

        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    /**
     * 发送邮件
     * 
     * @param to
     *            收件人列表,以","分割
     * @param subject
     *            标题
     * @param body
     *            内容
     * @param filepath
     *            附件列表,无附件传递null
     * @return
     * @throws MessagingException
     * @throws AddressException
     * @throws UnsupportedEncodingException
     */
    public static boolean sendMail(String to, String subject, String body)
            throws AddressException, MessagingException,
            UnsupportedEncodingException {
        // 参数修饰
        if (body == null) {
            body = "";
        }
        if (subject == null) {
            subject = "无主题";
        }
        // 创建Properties对象
        Properties props = System.getProperties();
        // 创建信件服务器
        props.put("mail.smtp.host", host);
        props.put("mail.smtp.auth", "true"); // 通过验证
        // 得到默认的对话对象
        Session session = Session.getDefaultInstance(props, null);
        // 创建一个消息,并初始化该消息的各项元素
        MimeMessage msg = new MimeMessage(session);
        nick = MimeUtility.encodeText(nick);
        msg.setFrom(new InternetAddress(nick + "<" + from + ">"));


        msg.setText(body, "UTF-8");
        // 创建收件人列表
        if (to != null && to.trim().length() > 0) {
            String[] arr = to.split(",");
            int receiverCount = arr.length;
            if (receiverCount > 0) {
                InternetAddress[] address = new InternetAddress[receiverCount];
                for (int i = 0; i < receiverCount; i++) {
                    address[i] = new InternetAddress(arr[i]);
                }
                msg.addRecipients(Message.RecipientType.TO, address);
                msg.setSubject(subject);
                // 后面的BodyPart将加入到此处创建的Multipart中

                //设置html内容
                //MimeMultipart是一个容器类,包含MimeBodyPart类型的对象
                Multipart mainPart = new MimeMultipart();
                //创建一个包含HTML内容的MimeBodyPart
                MimeBodyPart messageBodyPart = new MimeBodyPart();

                msg.setContent(mainPart);
                //设置HTML内容
                messageBodyPart.setContent(body,"text/html; charset=utf-8");
                mainPart.addBodyPart(messageBodyPart);

                //将MimeMultipart对象设置为邮件内容   
                msg.setContent(mainPart);

                 Transport transport = session.getTransport("smtp");
                transport.connect(host, username, password);
                transport.sendMessage(msg,
                        msg.getRecipients(Message.RecipientType.TO));
                transport.close();
                return true;
            } else {
                System.out.println("None receiver!");
                return false;
            }
        } else {
            System.out.println("None receiver!");
            return false;
        }
    }

    public static void main(String[] args) throws AddressException,
            UnsupportedEncodingException, MessagingException {
        StringBuffer demo = new StringBuffer();  
        demo.append("<!DOCTYPE html PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">")  
        .append("<html>")  
        .append("<head>")  
        .append("<meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\">")  
        .append("<title>测试邮件</title>")  
        .append("<style type=\"text/css\">")  
        .append(".test{font-family:\"Microsoft Yahei\";font-size: 18px;color: red;}")  
        .append("</style>")  
        .append("</head>")  
        .append("<body>")  
        .append("<span class=\"test\">大家好,这里是测试Demo</span>")  
        .append("</body>")  
        .append("</html>");  

        sendMail("280989974@qq.com,ermuv5@163.com", "实习验收", demo.toString());
    }
}

javaMail实现

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值