Javamail 源代码

Javamail 发送邮件方法源代码:

public static void send(MailInfo mail) throws Exception
{
try
{
Properties props = new Properties();
String smtpServer = mail.getSmtpServer();
String SmtpUser = mail.getUsername();
String SmtpPwd = mail.getPassword();
String subject = mail.getSubject();
String content=mail.getContent();
content=new String(content.getBytes("GB2312"),"iso-8859-1");
if(mail.getSubject()!=null) subject = mail.getSubject();
props.put("mail.smtp.host", smtpServer);//设置邮件smtp服务器地址
props.put("mail.smtp.auth","true"); //设置服务器smtp需要验证
Session sendMailSession = Session.getInstance(props, null);
MimeMessage newMessage = new MimeMessage(sendMailSession);
newMessage.setFrom(new InternetAddress(mail.getFrom()));
// 开始设置群发邮件地址
InternetAddress[] address = new InternetAddress[mail.getTo().length];

for (int i = 0; i < mail.getTo().length; i++) {
address[i] = new InternetAddress((mail.getTo())[i]);
}
newMessage.setRecipients(Message.RecipientType.TO, address);
if( mail.getCc()!=null )
{
InternetAddress[] addresscc = {new InternetAddress(mail.getCc())};
newMessage.setRecipients(Message.RecipientType.CC, addresscc);
}
if( mail.getBcc()!=null ){
InternetAddress[] addressbcc = {new InternetAddress(mail.getBcc())};
newMessage.setRecipients(Message.RecipientType.CC, addressbcc);
}
newMessage.setSubject(subject);
newMessage.setSentDate(new Date());
//对邮件发送内容中分附近进行处理
if(mail.getAttachment()==null)
{
newMessage.setDataHandler(new DataHandler(content,"text/html"));
}
else
{
MimeBodyPart messageBodyPart = new MimeBodyPart();
messageBodyPart.setDataHandler(new DataHandler(content,"text/html"));
Multipart multipart = new MimeMultipart();
multipart.addBodyPart(messageBodyPart);
messageBodyPart = new MimeBodyPart();
DataSource source = new FileDataSource(mail.getAttachment());
messageBodyPart.setDataHandler(new DataHandler(source));
File fn = new File(mail.getAttachment());
String fileName = fn.getName();
if(fileName!=null&&!"".equals(fileName)){
fileName = new String(fileName.getBytes("GB2312"),"iso-8859-1");
}
messageBodyPart.setFileName(fileName);
multipart.addBodyPart(messageBodyPart);
newMessage.setContent(multipart);
}
//开始连接smtp服务器,并检查是否通过smtp发信验证。
Transport transport = sendMailSession.getTransport("smtp");
transport.connect(smtpServer,SmtpUser,SmtpPwd);
transport.sendMessage(newMessage,newMessage.getAllRecipients());
transport.close();
}
catch(MessagingException e)
{
System.out.println("邮件发送失败");
e.printStackTrace();
}
}

private String smtpServer = null;

private String username = null;

private String password = null;

private String subject = null;

private String attachment = null;

private String content = null;

private String bcc = null;//邮件密送

private String cc = null;//邮件抄送

private String[] to = "";//发送地址,可多选

private String from = null;//发送来源


Send(MailInfo mail)主要实现单发群发.
可支持文本发送及Html格式。

String[] to 用数组存放收件人的邮箱名称!可一个或多个。

下面是一个Mian方法测试例子。

例如:

String[] usersMail ={"xuesongtan20@163.com","wangnana_001@163.com"};

mInfo.setSubject("Hello");

mInfo.setFrom("xuesongtan20@163.com");

mInfo.setTo(usersMail);

mInfo.setTo("xuesongtan20@163.com");

//mInfo.setContent("http://www.163.com");

mInfo.setContent("<html>" +

"<head> <title>My JSP</title>" +

"</head>"+

"<body><a href='http://www.baidu.com'>Hello,小小猪的大大爱</a></body>"+

"</html>");

mInfo.setAttachment("E:\\Hello.html");

mInfo.setSmtpServer("smtp.163.com");

mInfo.setUserName("");

mInfo.setPassword("");

//mInfo.setCc("shenxinyang20@sina.com");

SendMails mail = new SendMails();

//单发群发带附件

//mail.send(mInfo);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值