JavaMail 邮件发送 Demo

来源:互联网 发布:ireport软件 编辑:程序博客网 时间:2024/05/22 12:38

Demo1.java

package com.wsy.mail;


import java.util.Properties;


import javax.mail.Message;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;


public class Demo1 {
public static void main(String[] args) throws Exception {
// 1、造火箭
// Message msg = null
// 2、建造发射器
// Transport transport = null;
// 3、发射火箭
// transport.send(msg);


Properties props = new Properties();
props.setProperty("mail.smtp.auth", "true");
props.setProperty("mail.transport.protocol", "smtp");
Session session = Session.getInstance(props);// ?
session.setDebug(true);// 加入调试信息


Message msg = new MimeMessage(session);
msg.setText("2014年 3 月 23 日, xueshandugu 找你有事!请尽快回复………");
msg.setFrom(new InternetAddress("songyangwu12@126.com"));


Transport transport = session.getTransport();
transport.connect("smtp.126.com", 25, "songyangwu12", "999999wsy");
InternetAddress[] toAddress = { new InternetAddress("1056363842@qq.com") };
transport.sendMessage(msg, toAddress);
transport.close();

}
}



Demo2.java

package com.wsy.mail;


import java.io.BufferedInputStream;
import java.io.FileInputStream;
import java.io.InputStream;
import java.util.Properties;


import javax.mail.Authenticator;
import javax.mail.Message;
import javax.mail.PasswordAuthentication;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;


public class Demo2 {
public static void main(String[] args) throws Exception {
Properties props = new Properties();
props.setProperty("mail.smtp.auth", "true"); // 设置授权
props.setProperty("mail.transport.protocal", "smtp"); // 设置协议
props.setProperty("mail.host", "smtp.126.com");// 设置服务器?


Session session = Session.getInstance(props, new Authenticator() {
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication("songyangwu12", "999999wsy");
}
});
session.setDebug(true);


// Message msg = new MimeMessage(session);
// msg.setFrom(new InternetAddress("songyangwu12@126.com")); // 邮箱地址要合法
// msg.setSubject("中文主题");
// msg.setContent("<span style='color:red;'>中文哈哈哈哈哈哈所得发生的</span>",
// "text/html;charset=gbk");
//
// Address[] to = { new InternetAddress("1056363842@qq.com"),
// new InternetAddress("songyangwu12@126.com") };
// msg.setRecipients(RecipientType.TO, to);
//
// Transport.send(msg);


InputStream in = new FileInputStream("d:/aaa/demo3.eml");
BufferedInputStream bis = new BufferedInputStream(in);
Message msg = new MimeMessage(session, bis);


Transport.send(msg, InternetAddress.parse("1056363842@qq.ocm"));


in.close();
bis.close();
}
}



Demo3.java

package com.wsy.mail;


import java.io.FileOutputStream;
import java.io.OutputStream;
import java.io.UnsupportedEncodingException;
import java.util.Properties;


import javax.activation.DataHandler;
import javax.activation.DataSource;
import javax.activation.FileDataSource;
import javax.mail.Address;
import javax.mail.Message;
import javax.mail.Message.RecipientType;
import javax.mail.Session;
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 Demo3 {
public static void main(String[] args) throws Exception {


Session session = Session.getInstance(new Properties());
Message msg = new MimeMessage(session); // 创建信息体


MimeMultipart msgMultipart = new MimeMultipart("mixed");// ??? 设置参数的时候容易出错,应该是 subtype(错误:multipart/related, 正确:related)  TODO
//正文中文处理方式 TODO 
msg.setContent(msgMultipart , "gb2312"); // 邮件设定内容
//主题中文处理方式
msg.setSubject(Demo3.transferChinese("Java Mail test 手动生成邮件测试WSSSSSSS"));// ??? 邮件主题很关键

//发件人
// msg.setFrom(new InternetAddress("songyangwu12@126.com"));
//发件人只显示别名, “Alias” <abc@qq.com>
msg.setFrom(new InternetAddress("\"" + Demo3.transferChinese("雪山独孤") + "\"  <songyangwu12@126.com>"));

// 收件人
Address[] to = InternetAddress.parse("\""+Demo3.transferChinese("一弯新月")+"\" <1056363842@qq.ocm>");
msg.setRecipients(RecipientType.TO, to);

// 回复的收件人设置,回复收件人可以与发件人不同 TODO
msg.setReplyTo(new Address[]{new InternetAddress("wuwenyang@broadtext.com.cn")});


MimeBodyPart attach1 = new MimeBodyPart();
MimeBodyPart attach2 = new MimeBodyPart();
MimeBodyPart content = new MimeBodyPart();


msgMultipart.addBodyPart(attach1);
msgMultipart.addBodyPart(attach2);
msgMultipart.addBodyPart(content);


// 附件1
DataSource ds1 = new FileDataSource("d:/aaa/javaThread.docx");
DataHandler dh1 = new DataHandler(ds1);
attach1.setDataHandler(dh1);
attach1.setFileName(Demo3.transferChinese("邮件javaThread.docx"));//??? 附件必须设置 文件名 TODO


// 附件2
DataSource ds2 = new FileDataSource("d:/aaa/html demo.txt");
DataHandler dh2 = new DataHandler(ds2);
attach2.setDataHandler(dh2);
attach2.setFileName("html demo.txt");


// 复杂正文:html文档; 插入图片文件
MimeMultipart bodyMultiPart = new MimeMultipart("related"); 
content.setContent(bodyMultiPart);


MimeBodyPart gifPart = new MimeBodyPart();
MimeBodyPart htmlPart = new MimeBodyPart();
bodyMultiPart.addBodyPart(gifPart);
bodyMultiPart.addBodyPart(htmlPart);


DataSource gifds = new FileDataSource("d:/aaa/logo.jpg");
DataHandler gifdh = new DataHandler(gifds);
gifPart.setDataHandler(gifdh);
gifPart.setHeader("Content-location", "http://www.wsy.com/aaa/logo.jpg");  //??? 引用本地文件 TODO


// 发送html 中文编码处理 TODO
htmlPart.setContent("你们java不是很牛嘛,这是我写的java复杂邮件发送,想向你们挑战一下,敢不敢应战<img src='http://www.wsy.com/aaa/logo.jpg' />", "text/html;charset = gbk");


msg.saveChanges();


OutputStream out = new FileOutputStream("d:/aaa/demo3.eml");
//BufferedOutputStream bufout = new BufferedOutputStream(out);
msg.writeTo(out);


out.close();
// bufout.close();


}

public static String transferChinese(String strText) {
try {
strText = MimeUtility.encodeText(new String(strText.getBytes(),
"GB2312"), "GB2312", "B");
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
return strText;
}
}


尊重他人劳动成果,转载请注明出处。


0 0
原创粉丝点击