用mail.jar发送邮件(正解)

用mail.jar发送邮件

分享
标签: 邮件  mail.jar  分类: java 2007-02-02 13:03

/**

*需要用到mail.jar和activation.jar

*前者需要下载

*后者一般在tomcat、jboss的目录下有

**/

package email;


import java.util.Properties;
import java.io.UnsupportedEncodingException;

import javax.mail.*;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;

public class EmailSender {
    private static final String defaultSMTPHost = "smtp.***.***";
    private static final String defaultMailFromName = "***@***.***";
    private static final String defaultMailFromPassword = "***";

    public static int send(String mailTos, String mailSubject, String mailText) {
        //check params
        if (mailTos == null || mailSubject == null || mailText == null) return 0;

        //encoding params
        String encoding = "iso-8859-1";
        try {
            //标题不需要编码,编码后为乱码
            //正文需要编码
            mailText = new String(mailText.getBytes(), encoding);
        } catch (UnsupportedEncodingException e) {
            System.out.println("Fail to encoding mail text to " + encoding);
        }

        Properties props = new Properties();
        props.put("mail.smtp.host", defaultSMTPHost);//邮件服务器地址
        props.put("mail.smtp.auth", "true");
        props.put("mail.smtp.user", "CTOPAY");//发送方的发送名;
        props.put("mail.smtp.from", defaultMailFromName);//发送邮箱地址;
        props.put("mail.debug", "false");//不打印构建发送者信息

        //构建发送者
        Authenticator auth = new Authenticator() {
            public PasswordAuthentication getPasswordAuthentication() {
                return new PasswordAuthentication(defaultMailFromName, defaultMailFromPassword);
            }
        };

        Session session = Session.getInstance(props, auth);
        session.setDebug(false);//不打印发送信息

        Message msg = new MimeMessage(session);
        int sendNum = 0;//发送的数量

        for (String mailTo : mailTos.split(",")) {
            try {
                InternetAddress[] addresses = {new InternetAddress(mailTo)};
                msg.setRecipients(Message.RecipientType.TO, addresses);//设置邮件接收地址集
                msg.setSentDate(new java.util.Date());//设置邮件发送日期
                msg.setSubject(mailSubject);// 设置邮件的标题
//                msg.setText(mailText);// 设置邮件的内容(文本)
                msg.setContent(mailText, "text/html");// 设置邮件的内容
                Transport.send(msg);//发送邮件

                sendNum++;//发送记数
                System.out.println("Success to send email to " + mailTo);
            } catch (MessagingException e) {
                System.out.println("Fail to send email for:" + e);
            }
        }
        return sendNum;
    }

    public static void main(String[] args) {
        String to = "a@b.c,b@c.d";
        String subject = "测试中文test chinese";
        String text = "<table align=center width=100%><tr><td align=right>邮件测试mail test</td></tr></table>";

        int i = send(to, subject, mailText);
        System.out.println("i = " + i);

    }

}

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值