Java实现邮件的自动发送
2017-06-26 17:28
513 查看
public static void sendTxtMail()
{
Properties props = new Properties();
props.put("mail.smtp.host", "smtp.163.com"); //smtp服务器地址
props.put("mail.smtp.auth", true); //是否需要认证
/**实例化一个验证里,继承abstract Authenticator
* 实现
* protected PasswordAuthentication getPasswordAuthentication(){
* return new PasswordAuthentication(userName,password);
* }
*/
MyAuthenticator myauth = new MyAuthenticator("账号","密码");
//获得一个带有authenticator的session实例
Session session = Session.getInstance(props,myauth);
session.setDebug(true);//打开debug模式,会打印发送细节到console
Message message = new MimeMessage(session); //实例化一个MimeMessage集成自abstract Message 。参数为session
try
{
message.setFrom(new InternetAddress("83378122@163.com")); //设置发出方,使用setXXX设置单用户,使用addXXX添加InternetAddress[]
message.setText("只是一个简简单单的文本内容哟!"); //设置文本内容 单一文本使用setText,Multipart复杂对象使用setContent
message.setSubject("只是简简单单的文本标题哟!"); //设置标题
message.setRecipient(Message.RecipientType.TO, new InternetAddress("dxt02880466@qq.com")); //设置接收方
Transport.send(message); //使用Transport静态方法发送邮件
}catch(AddressException e)
{
//此处处理AddressException异常 [The exception thrown when a wrongly formatted address is encountered.]
}catch(MessagingException e)
{
//此处处理MessagingException异常 [The base class for all exceptions thrown by the Messaging classes ]
}
}
//发送带有附件的邮件,将邮件的每个部分初始化一个bodypart。
//邮件是由多个部分组成,每个部分称为一个邮件体部分,是一个 BodyPart 类对象,
//对于 MIME 类型 邮件来讲就是 MimeBodyPart 类对象.这些邮件体包含在成为 Multipart 的容器中
public static void sendMailWithAttachment(){
Properties props = new Properties();
Session session = Session .getDefaultInstance(props);
Message message = new MimeMessage(session);
try
{
message.setSubject("这个是带有附件的标题");
message.setFrom(new InternetAddress("83378122@163.com"));
message.setRecipient(Message.RecipientType.TO, new InternetAddress("dxt02880466@qq.com"));
Multipart multipart = new MimeMultipart();
//实例化一个bodypart用于封装内容
BodyPart bodyPart = new MimeBodyPart();
bodyPart.setContent("<font color='red'>这个是带有附件的HTML内容</font>","text/html;charset=utf8");
//添加bodypart到multipart
multipart.addBodyPart(bodyPart);
//每一个部分实例化一个bodypart,故每个附件也需要实例化一个bodypart
bodyPart = new MimeBodyPart();
//实例化DataSource(来自jaf),参数为文件的地址
DataSource dataSource = new FileDataSource(file.getAbsolutePath());
//使用datasource实例化datahandler
DataHandler dataHandler = new DataHandler(dataSource);
bodyPart.setDataHandler(dataHandler);
//设置附件标题,使用MimeUtility进行名字转码,否则接收到的是乱码
bodyPart.setFileName(javax.mail.internet.MimeUtility.encodeText(file.getName()));
multipart.addBodyPart(bodyPart);
message.setContent(multipart);
Transport transport = session.getTransport("smtp");
transport.connect("smtp.163.com","账号" , "密码");
transport.sendMessage(message, message.getAllRecipients());
transport.close();
}catch(MessagingException e)
{}catch(UnsupportedEncodingException e){}
}
1.什么是javamail
JavaMail API是读取、撰写、发送电子信息的可选包。
2.javamail开发需要依赖的jar包
mail.jar(javamail API 目前是1.4.3)-与收发有关的类都在其中
activation.jar(javabeans activation framework包 目前是1.0.2)--可以提供对Mime类型数据的支持。比如收发附件。
{
Properties props = new Properties();
props.put("mail.smtp.host", "smtp.163.com"); //smtp服务器地址
props.put("mail.smtp.auth", true); //是否需要认证
/**实例化一个验证里,继承abstract Authenticator
* 实现
* protected PasswordAuthentication getPasswordAuthentication(){
* return new PasswordAuthentication(userName,password);
* }
*/
MyAuthenticator myauth = new MyAuthenticator("账号","密码");
//获得一个带有authenticator的session实例
Session session = Session.getInstance(props,myauth);
session.setDebug(true);//打开debug模式,会打印发送细节到console
Message message = new MimeMessage(session); //实例化一个MimeMessage集成自abstract Message 。参数为session
try
{
message.setFrom(new InternetAddress("83378122@163.com")); //设置发出方,使用setXXX设置单用户,使用addXXX添加InternetAddress[]
message.setText("只是一个简简单单的文本内容哟!"); //设置文本内容 单一文本使用setText,Multipart复杂对象使用setContent
message.setSubject("只是简简单单的文本标题哟!"); //设置标题
message.setRecipient(Message.RecipientType.TO, new InternetAddress("dxt02880466@qq.com")); //设置接收方
Transport.send(message); //使用Transport静态方法发送邮件
}catch(AddressException e)
{
//此处处理AddressException异常 [The exception thrown when a wrongly formatted address is encountered.]
}catch(MessagingException e)
{
//此处处理MessagingException异常 [The base class for all exceptions thrown by the Messaging classes ]
}
}
//发送带有附件的邮件,将邮件的每个部分初始化一个bodypart。
//邮件是由多个部分组成,每个部分称为一个邮件体部分,是一个 BodyPart 类对象,
//对于 MIME 类型 邮件来讲就是 MimeBodyPart 类对象.这些邮件体包含在成为 Multipart 的容器中
public static void sendMailWithAttachment(){
Properties props = new Properties();
Session session = Session .getDefaultInstance(props);
Message message = new MimeMessage(session);
try
{
message.setSubject("这个是带有附件的标题");
message.setFrom(new InternetAddress("83378122@163.com"));
message.setRecipient(Message.RecipientType.TO, new InternetAddress("dxt02880466@qq.com"));
Multipart multipart = new MimeMultipart();
//实例化一个bodypart用于封装内容
BodyPart bodyPart = new MimeBodyPart();
bodyPart.setContent("<font color='red'>这个是带有附件的HTML内容</font>","text/html;charset=utf8");
//添加bodypart到multipart
multipart.addBodyPart(bodyPart);
//每一个部分实例化一个bodypart,故每个附件也需要实例化一个bodypart
bodyPart = new MimeBodyPart();
//实例化DataSource(来自jaf),参数为文件的地址
DataSource dataSource = new FileDataSource(file.getAbsolutePath());
//使用datasource实例化datahandler
DataHandler dataHandler = new DataHandler(dataSource);
bodyPart.setDataHandler(dataHandler);
//设置附件标题,使用MimeUtility进行名字转码,否则接收到的是乱码
bodyPart.setFileName(javax.mail.internet.MimeUtility.encodeText(file.getName()));
multipart.addBodyPart(bodyPart);
message.setContent(multipart);
Transport transport = session.getTransport("smtp");
transport.connect("smtp.163.com","账号" , "密码");
transport.sendMessage(message, message.getAllRecipients());
transport.close();
}catch(MessagingException e)
{}catch(UnsupportedEncodingException e){}
}
1.什么是javamail
JavaMail API是读取、撰写、发送电子信息的可选包。
2.javamail开发需要依赖的jar包
mail.jar(javamail API 目前是1.4.3)-与收发有关的类都在其中
activation.jar(javabeans activation framework包 目前是1.0.2)--可以提供对Mime类型数据的支持。比如收发附件。
相关文章推荐
- java程序监控tomcat实现项目宕机自动重启并发送邮件提醒
- Java 实现邮件的自动发送
- java实现自动发送邮件
- Java实现自动发送带附件的邮件(网易邮箱为例)
- java使用JMail通过QQ邮件服务器实现自动发送邮件
- JAVA实现邮件发送
- java免费发送邮件实现
- PHP实现邮件的自动发送
- Java发送邮件的实现
- java 实现发送邮件
- Java发送邮件简单实现以及问题的解决
- Java远程调用邮件服务器,实现邮件发送
- Java基于JavaMail实现向QQ邮箱发送邮件
- java免费发送邮件实现
- Java实现通过smtp服务器向指定邮箱发送邮件
- java实现邮件发送功能工具类
- java自动发送邮件实例
- java实现对服务器的自动巡检邮件通知
- Spring中使用 JavaMailSenderImpl来实现邮件的发送
- 再谈用java实现Smtp发送邮件之Socket编程