java文件发到多个地址_Java邮件发送程序(可以同时发给多个地址、可以带附件)...

Java邮件发送程序(可以同时发给多个地址、可以带附件)

更新时间:2008年07月30日 23:26:03   作者:

不错的功能比较齐全的邮件发送程序源码

发送邮件的主程序

import java.util.Properties;

import common.util.Email_Autherticatorbean;

import javax.mail.Authenticator;

import javax.mail.internet.InternetAddress;

import org.apache.commons.lang.StringUtils;

import javax.mail.internet.MimeBodyPart;

import javax.mail.Multipart;

import javax.activation.FileDataSource;

import javax.mail.internet.MimeMultipart;

import javax.activation.DataHandler;

import javax.mail.internet.MimeUtility;

import java.util.Date;

/**

* 利用java.mail的邮件发送程序

*/

public class SendMailTest

{

public static void main(String[] args)

{

String title = "titleTest";//所发送邮件的标题

String from ="sir_znp@163.com";//从那里发送

String sendTo[] = {"znp@163.net","sir_znp@163.com"};//发送到那里

//邮件的文本内容,可以包含html标记则显示为html页面

String content = "mail test!!!!!!aaa";

//所包含的附件,及附件的重新命名

String fileNames[] = {"F:\\music\\text1.txt,text1.txt","F:\\music\\text2.txt,text2.txt"};

try {

//  MailSender mailsender = new MailSender();

sendmail(title, from, sendTo, content, fileNames,"text/html;charset=gb2312");

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

}

public static void sendmail(String subject, String from, String[] to, String text, String[] filenames,String mimeType) throws Exception

{

//ResourceBundle mailProps = ResourceBundle.getBundle("mail");   可以从配置文件读取相应的参数

Properties props = new Properties();

String smtp = "smtp.163.com";  //设置发送邮件所用到的smtp

String servername = "sir_znp";

String serverpaswd = "123";

javax.mail.Session mailSession; //邮件会话对象

javax.mail.internet.MimeMessage mimeMsg; //MIME邮件对象

props = java.lang.System.getProperties(); //获得系统属性对象

props.put("mail.smtp.host", smtp); //设置SMTP主机

props.put("mail.smtp.auth", "true"); //是否到服务器用户名和密码验证

//到服务器验证发送的用户名和密码是否正确

Email_Autherticatorbean myEmailAuther = new Email_Autherticatorbean(servername, serverpaswd);

//设置邮件会话

mailSession = javax.mail.Session.getInstance(props, (Authenticator) myEmailAuther);

//设置传输协议

javax.mail.Transport transport = mailSession.getTransport("smtp");

//设置from、to等信息

mimeMsg = new javax.mail.internet.MimeMessage(mailSession);

if (!StringUtils.isEmpty(from))

{

InternetAddress sentFrom = new InternetAddress(from);

mimeMsg.setFrom(sentFrom);  //设置发送人地址

}

InternetAddress[] sendTo = new InternetAddress[to.length];

for (int i = 0; i 

{

System.out.println("发送到:" + to[i]);

sendTo[i] = new InternetAddress(to[i]);

}

mimeMsg.setRecipients(javax.mail.internet.MimeMessage.RecipientType.TO, sendTo);

mimeMsg.setSubject(subject, "gb2312");

MimeBodyPart messageBodyPart1 = new MimeBodyPart();

//messageBodyPart.setText(UnicodeToChinese(text));

messageBodyPart1.setContent(text, mimeType);

Multipart multipart = new MimeMultipart();//附件传输格式

multipart.addBodyPart(messageBodyPart1);

for (int i = 0; i 

MimeBodyPart messageBodyPart2 = new MimeBodyPart();

//选择出每一个附件名

String filename = filenames[i].split(",")[0];

System.out.println("附件名:" + filename);

String displayname = filenames[i].split(",")[1];

//得到数据源

FileDataSource fds = new FileDataSource(filename);

//得到附件本身并至入BodyPart

messageBodyPart2.setDataHandler(new DataHandler(fds));

//得到文件名同样至入BodyPart

//messageBodyPart2.setFileName(displayname);

// messageBodyPart2.setFileName(fds.getName());

messageBodyPart2.setFileName(MimeUtility.encodeText(displayname));

multipart.addBodyPart(messageBodyPart2);

}

mimeMsg.setContent(multipart);

//设置信件头的发送日期

mimeMsg.setSentDate(new Date());

mimeMsg.saveChanges();

//发送邮件

transport.send(mimeMsg);

transport.close();

}

}

验证类

package common.util;

import javax.mail.Authenticator;

import javax.mail.PasswordAuthentication;

public class Email_Autherticatorbean  extends Authenticator

{

private String m_username = null;

private String m_userpass = null;

public void setUsername(String username)

{

m_username = username;

}

public void setUserpass(String userpass)

{

m_userpass = userpass;

}

public Email_Autherticatorbean(String username, String userpass)

{

super();

setUsername(username);

setUserpass(userpass);

}

public PasswordAuthentication getPasswordAuthentication()

{

return new PasswordAuthentication(m_username,m_userpass);

}

}

相关文章

1a1b05c64693fbf380aa1344a7812747.png

这篇文章主要介绍了Java sm3加密算法的实现,帮助大家更好的利用Java进行加密,感兴趣的朋友可以了解下2020-10-10

4f55910a645b073bc4fc65dc10dc14bd.png

这篇文章主要介绍了Java打印1-1000以内的水仙花数,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧2019-04-04

0ea3c7666119d5615e582f823fb3fad6.png

Java8新增了date和time的util包,下面这篇文章主要给大家介绍了关于java8新特性教程之time包使用的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧2019-01-01

4f96a78db829b1556ff16de21e013c7a.png

这篇文章主要介绍了java 设计模式(DAO)的实例详解的相关资料,希望通过本文能帮助到大家,需要的朋友可以参考下2017-09-09

8cc1031babc6aff2319f1c6af8544aa0.png

本篇文章主要介绍了Spring Boot Gradle发布war到tomcat的方法示例,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧2018-03-03

0c932a99bb7b6f23c937db507070cc7b.png

本篇文章主要介绍了解决Spring国际化文案占位符失效问题的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧2018-04-04

cca732bf65a93ed2ec0ac80c638460fe.png

今天小编就为大家分享一篇关于shuffle的关键阶段sort(Map端和Reduce端)源码分析,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧2019-01-01

2d9f31f2af7b675a3d153d2b7f1035a7.png

这篇文章主要介绍了java LRU算法,简单介绍了LRU算法的概念并结合实例形式分析了LRU算法的具体使用方法,需要的朋友可以参考下2017-09-09

b452cee8ec5cd9e58ab98eba17281e59.png

这篇文章主要介绍了详解Java中运算符以及相关的用法讲解,一起跟着小编学习下吧。2017-12-12

f4838ec7e2d4da28e0b57d4e852dadd4.png

这篇文章主要介绍了MyEclipse10安装Log4E插件的相关资料,需要的朋友可以参考下2017-10-10

最新评论

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值