package com.sidiw.util.jmail; import java.util.date; import javax.activation.datahandler; import sun.misc.base64encoder; public class sendmail { /** 文本还是html内容 */ private session session; private transport transport; private base64encoder enc = new sun.misc.base64encoder(); public sendmail() { public sendmail(string encode, boolean html) { public boolean connect(string smtphost, string uid, string pwd) { connectmail connect = new connectmail(); return result; public void close() { public void send(map outermailinfo) { mimemessage mimemessage = createmimemessage(((string) outermailinfo private mimemessage createmimemessage(string fromname, string from, /** 加入调试信息 */ mimemessage message = new mimemessage(session); internetaddress[] toaddress = internetaddress.parse(to); message.setrecipients(recipienttype.to, toaddress); message.setsentdate(new date()); message.setsubject(subject, this.encode); mimebodypart mimebodypart = new mimebodypart(); for (int i = 0; i < filename.length; i++) { public static void main(string arg[]) { /* try { map outermailinfo = new hashmap(); outermailinfo.put("strfrom", "shaoqiss@163.com"); // string[] filename = new string[3]; // outermailinfo.put("strfilenamelist",filename); system.out.println("###############"); mail.send(outermailinfo); system.out.println("@@@@@@@@@@@@@@@"); system.out.print(i + "/t"); } }
import java.util.hashmap;
import java.util.map;
import javax.activation.datasource;
import javax.activation.filedatasource;
import javax.mail.messagingexception;
import javax.mail.multipart;
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.mimemessage.recipienttype;
/** 文本编码 */
private string encode;
private boolean html;
this.encode = "gbk";
this.html = true;
}
this.encode = encode;
this.html = html;
}
boolean result = false;
result = connect.connectsmtp(smtphost, uid, pwd);
this.session = connect.getsession();
this.transport = connect.gettransport();
}
if (this.transport != null) {
try {
this.transport.close();
} catch (exception e) {
e.printstacktrace();
}
}
}
try {
/** 文件附件编码 */
//setfilename(mimeutility.encodetext(filename, "gbk"));
/** 文件主题编码 */
//msg.setsubject("=?gb2312?b?"+enc.encode(subject.getbytes())+"?=");
string title = "=?"
+ this.encode
+ "?b?"
+ enc.encode(((string) outermailinfo.get("strtitle"))
.getbytes()) + "?=";
.get("strfromname")), ((string) outermailinfo
.get("strfrom")), ((string) outermailinfo.get("strto")),
((string) outermailinfo.get("strcc")),
((string) outermailinfo.get("strbcc")), title,
((string) outermailinfo.get("strcontent")),
((string[]) outermailinfo.get("strfilenamelist"))//outermailinfo.getstrfilenamelist()
);
transport.sendmessage(mimemessage, mimemessage.getallrecipients());
} catch (messagingexception e) {
e.printstacktrace();
}
}
string to, string cc, string bcc, string subject, string text,
string[] filename) throws messagingexception {
session.setdebug(true);
internetaddress fromaddress = new internetaddress(from);
try {
if (fromname != null)
fromaddress.setpersonal(fromname);
} catch (exception e) {
}
message.setfrom(fromaddress);
internetaddress[] ccaddress = internetaddress.parse(cc);
internetaddress[] bccaddress = internetaddress.parse(bcc);
message.setrecipients(recipienttype.cc, ccaddress);
message.setrecipients(recipienttype.bcc, bccaddress);
/** 处理附件 */
if (filename != null && filename.length > 0) {
multipart multipart = new mimemultipart();
if (html) {
mimebodypart.setcontent(text, "text/html;charset="
+ this.encode);
} else {
mimebodypart.settext(text, this.encode);
}
multipart.addbodypart(mimebodypart);
try {
mimebodypart filebodypart = new mimebodypart();
datasource datasource = new filedatasource(filename[i]);
filebodypart.setdatahandler(new datahandler(datasource));
//filebodypart.setfilename(new
// file(filename[i]).getname());
//filebodypart.setfilename("=?gbk?b?"+enc.encode((datasource.getname()).getbytes())+"?=");
filebodypart.setfilename("=?" + this.encode + "?b?"
+ enc.encode((datasource.getname()).getbytes())
+ "?=");
multipart.addbodypart(filebodypart);
} catch (exception e) {
e.printstacktrace();
}
}
message.setcontent(multipart);
} else {
if (html) {
message.setcontent(text, "text/html;charset=" + this.encode);
} else {
message.settext(text, this.encode);
}
}
return message;
}
* new sendmail() 使用gbk的默认编码发送文本信息 new sendmail(编码,文本还是html);
*/
sendmail mail = new sendmail("gbk", true);
if (mail.connect("smtp.163.com", "shaoqiss@163.com", "937000")) {
for (int i = 0; i < 1; i++) {
outermailinfo.put("strto", "shaoqi8266@chinaren.com");
outermailinfo.put("strtitle", "发送测试send test");
outermailinfo.put("strcc", "");
outermailinfo.put("strbcc", "");
outermailinfo.put("strcontent",
"测试一下我的内容是可以吗?contexnt test");
//
// filename[0] = "c:/tmp/1.txt";
// filename[1] = "c:/tmp/2.txt";
// filename[2] = "c:/tmp/add.jpg";
}
mail.close();
} catch (exception e) {
system.out.println(e.tostring());
}
}
闽公网安备 35060202000074号