天天看點

java 郵件 附件_java中javamail發送帶附件的郵件實作方法

????瀹?渚?璁茶堪浜?java涓?javamail????甯???浠剁????浠跺???版?規?????浜?缁?澶у?朵?澶у?跺???????蜂?????濡?涓?锛?

JavaMail锛?椤懼????涔?锛???渚?缁?寮?????澶????靛????浠剁?稿?崇??缂?绋??ュ?c??瀹???Sun??甯????ㄦ?ュ???email??API??瀹???浠ユ?逛究?版?ц?涓?浜?甯哥?ㄧ????浠朵?杈?,JavaMail????????,??姝ゅ?????瑕?浣跨?ㄧ??璇?浣???瑕?棣???浠?java瀹?缃?涓?涓?杞姐?????????扮??????JavaMail1.5.0,涓??㈡??浠??ョ????javamail????甯???浠剁????浠跺??渚?

mail.java 浠g??:

package mail;

import java.util.* ;

import java.io.* ;

import javax.mail.* ;

import javax.mail.internet.* ;

import javax.activation.* ;

public class Mail {

//瀹?涔???浠朵漢???朵歡浜恒??SMTP???″?ㄣ???ㄦ?峰????瀵?????涓婚?????瀹圭??

private String displayName;

private String to;

private String from;

private String smtpServer;

private String username;

private String password;

private String subject;

private String content;

private boolean ifAuth; //???″?ㄦ?????韬?浠借?よ??

private String filename="";

private Vector file = new Vector(); //?ㄤ?淇?瀛???????浠剁????浠跺????????

public void setSmtpServer(String smtpServer){

this.smtpServer=smtpServer;

}

public void setFrom(String from){

this.from=from;

}

public void setDisplayName(String displayName){

this.displayName=displayName;

}

public void setIfAuth(boolean ifAuth){

this.ifAuth=ifAuth;

}

public void setUserName(String username){

this.username=username;

}

public void setPassword(String password){

this.password=password;

}

public void setTo(String to){

this.to=to;

}

public void setSubject(String subject){

this.subject=subject;

}

public void setContent(String content){

this.content=content;

}

public void addAttachfile(String fname){

file.addElement(fname);

}

public Mail(){

}

public Mail(String smtpServer,String from,String displayName,String username,String password,String to,String subject,String content){

this.smtpServer=smtpServer;

this.from=from;

this.displayName=displayName;

this.ifAuth=true;

this.username=username;

this.password=password;

this.to=to;

this.subject=subject;

this.content=content;

}

public Mail(String smtpServer,String from,String displayName,String to,String subject,String content){

this.smtpServer=smtpServer;

this.from=from;

this.displayName=displayName;

this.ifAuth=false;

this.to=to;

this.subject=subject;

this.content=content;

}

public HashMap send(){

HashMap map=new HashMap();

map.put("state", "success");

String message="??浠跺????????锛?";

Session session=null;

Properties props = System.getProperties();

props.put("mail.smtp.host", smtpServer);

if(ifAuth){ //???″?ㄩ??瑕?韬?浠借?よ??

props.put("mail.smtp.auth","true");

SmtpAuth smtpAuth=new SmtpAuth(username,password);

session=Session.getDefaultInstance(props, smtpAuth);

}else{

props.put("mail.smtp.auth","false");

session=Session.getDefaultInstance(props, null);

}

session.setDebug(true);

Transport trans = null;

try {

Message msg = new MimeMessage(session);

try{

Address from_address = new InternetAddress(from, displayName);

msg.setFrom(from_address);

}catch(java.io.UnsupportedEncodingException e){

e.printStackTrace();

}

InternetAddress[] address={new InternetAddress(to)};

msg.setRecipients(Message.RecipientType.TO,address);

msg.setSubject(subject);

Multipart mp = new MimeMultipart();

MimeBodyPart mbp = new MimeBodyPart();

mbp.setContent(content.toString(), "text/html;charset=gb2312");

mp.addBodyPart(mbp);

if(!file.isEmpty()){//????浠?

Enumeration efile=file.elements();

while(efile.hasMoreElements()){

mbp=new MimeBodyPart();

filename=efile.nextElement().toString(); //???╁?烘??涓?涓???浠跺??

FileDataSource fds=new FileDataSource(filename); //寰??版?版??婧?

mbp.setDataHandler(new DataHandler(fds)); //寰??伴??浠舵??韬?骞惰?沖??odyPart

mbp.setFileName(fds.getName());? //寰??版??浠跺?????瘋?沖??odyPart

mp.addBodyPart(mbp);

}

file.removeAllElements();

}

msg.setContent(mp); //Multipart???ュ?頒俊浠?

msg.setSentDate(new Date());???? //璁劇疆淇′歡澶寸???????ユ??

//????淇′歡

msg.saveChanges();

trans = session.getTransport("smtp");

trans.connect(smtpServer, username, password);

trans.sendMessage(msg, msg.getAllRecipients());

trans.close();

}catch(AuthenticationFailedException e){

map.put("state", "failed");

message="??浠跺????澶辮觸锛???璇?????锛?\n"+"韬?浠介??璇???璇?!";

e.printStackTrace();

}catch (MessagingException e) {

message="??浠跺????澶辮觸锛???璇?????锛?\n"+e.getMessage();

map.put("state", "failed");

e.printStackTrace();

Exception ex = null;

if ((ex = e.getNextException()) != null) {

System.out.println(ex.toString());

ex.printStackTrace();

}

}

//System.out.println("\n??绀轟俊??:"+message);

map.put("message", message);

return map;

}

}

SmtpAuth.java 浠g??:

package mail;

public class SmtpAuth extends javax.mail.Authenticator {

private String username,password;

public SmtpAuth(String username,String password){

this.username = username;

this.password = password;

}

protected javax.mail.PasswordAuthentication getPasswordAuthentication() {

return new javax.mail.PasswordAuthentication(username,password);

}

}

瀛??ㄧ????棰?灏辨????????63????浠跺?ㄩ?ㄩ?藉甫??涓?涓???浠剁??绗??鳳?涓?绠℃??娌℃????????浠訛????磋叮????????浠ュ?規?ゅ??浠ユ?矽???瀹?????

甯?????????杩闆?瑰ぇ瀹剁??Java绋?搴?璁捐?℃????甯??┿??