您的位置:首页 > 大数据 > 人工智能

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

2010-12-28 16:12 141 查看

用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);

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: