JavaMail发送带附件的邮件&&发送一封本地邮件

以下是实现了,JavaMail发送邮件及附件的code.


package com.mail;
import java.util.Date;
import java.util.Properties;
import javax.activation.DataHandler;
import javax.activation.FileDataSource;
import javax.mail.Message;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeBodyPart;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.MimeMultipart;
import javax.mail.internet.MimeUtility;
public class Html_File_InnerFile {
public static void main(String[] args) throws Exception {
Properties props = new Properties();
props.put( "mail.smtp.host ", "smtp.qq.com ");
props.put("mail.smtp.auth", "true");
Session session = Session.getInstance(props);
Message message = new MimeMessage(session);
InternetAddress from = new InternetAddress("zheng.magic@qq.com");
from.setPersonal(MimeUtility.encodeText("new mars<zheng.magic@qq.com>"));
message.setFrom(from);
InternetAddress to = new InternetAddress("zheng.magic@qq.com");
message.setRecipient(Message.RecipientType.TO, to);
message.setSubject(MimeUtility.encodeText("测试邀请!"));
message.setSentDate(new Date());
MimeMultipart msgMultipart = new MimeMultipart("mixed");// 指定为混合关系
message.setContent(msgMultipart);
// 邮件内容
MimeBodyPart htmlPart = new MimeBodyPart();
htmlPart.setContent(
"<body>"
+ "<div style='position: absolute; left: 390px; top: 150px;height: "
+ "100px;width: 200px;' align='center'>"
+ "<font color='red'>这是测试邮件,请勿回复</font>" + "</div></body>",
"text/html;charset=UTF-8");
// TODO 组装的顺序非常重要,一定要先组装文本域,再组装文件
msgMultipart.addBodyPart(htmlPart);
// 组装附件
MimeBodyPart file = new MimeBodyPart();
FileDataSource file_datasource = new FileDataSource("E:\\emailtext.zip");
DataHandler dh = new DataHandler(file_datasource);
file.setDataHandler(dh);
// 附件区别内嵌内容的一个特点是有文件名,为防止中文乱码要编码
file.setFileName(MimeUtility.encodeText(dh.getName()));
msgMultipart.addBodyPart(file);
message.saveChanges();
Transport transport = session.getTransport("smtp");
transport.connect("smtp.qq.com", 25, "zheng.magic", "123456");
transport.sendMessage(message, message.getAllRecipients());
transport.close();
System.out.println("发送完毕");
}
}

这里是保存email邮件到本地的code

package com.mail;
import java.io.File;
import java.io.FileOutputStream;
import java.io.OutputStream;
import java.util.Date;
import java.util.Properties;
import javax.mail.Message;
import javax.mail.Session;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.MimeUtility;
/**
* @说明 保存一个邮件
* @author zhengqiang
* @version 1.0
* @since
*/
public class TextMail {
public static void main(String[] args) throws Exception {
Properties props = new Properties();
props.put( "mail.smtp.host ", "smtp.qq.com ");
props.put("mail.smtp.port", 25);
props.put("mail.smtp.auth", "true");
Session session = Session.getInstance(props);
session.setDebug(true);
Message message = new MimeMessage(session);
InternetAddress from = new InternetAddress("zheng.magic@qq.com");
from.setPersonal(MimeUtility.encodeText("new.mars<zheng.magic@qq.com>"));
message.setFrom(from);
InternetAddress to = new InternetAddress("zheng.magic@qq.com");
message.setRecipient(Message.RecipientType.TO, to);
message.setSubject(MimeUtility.encodeText("测试邀请!"));
message.setText("强哥邀请你访问我的博客:http://New.Mars.iteye.com/!");
message.setSentDate(new Date());
// 邮件对象
File file = new File("E:\\textmail.eml");
// 获得输出流
OutputStream ips = new FileOutputStream(file);
// 把邮件内容写入到文件
message.writeTo(ips);
// 关闭流
ips.close();
System.out.println("发送完毕");
}
}

好咯,上面是保存email到本地了,
现在嘞。我们就来看下如何发送本地email的邮件啦!

package com.mail;
import java.io.File;
import java.io.FileInputStream;
import java.util.Date;
import java.util.Properties;
import javax.mail.Message;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.MimeMessage;
/**
* 发送一封本地的邮件
* @author zheng.magic@qq.com
*/
public class SendCurrentMail {
public static void main(String[] args) throws Exception {
Properties props = new Properties();
props.put("mail.smtp.auth", "true");
Session session = Session.getInstance(props);
// 现有邮件文件
File file = new File("E:\\textmail.eml");
FileInputStream fis = new FileInputStream(file);
// 创建邮件对象
Message message = new MimeMessage(session, fis);
message.setSentDate(new Date());
message.saveChanges();
// 发送邮件
Transport transport = session.getTransport("smtp");
transport.connect("smtp.qq.com", 25, "zheng.magic", "123456");
transport.sendMessage(message, message.getAllRecipients());
transport.close();
fis.close();
System.out.println("发送完毕");
}
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值