?? sendmaildao.java
字號:
package com.wgh.dao;
import java.io.File;
import java.sql.*;
import java.util.*;
import javax.mail.*;
import javax.mail.internet.*;
import javax.activation.*;
import com.wgh.actionForm.SendMailForm;
import com.wgh.core.ConnDB;
public class SendMailDAO {
// 發(fā)送郵件
public int sendMail(SendMailForm s) {
int ret = 0;
String from = s.getAddresser();
String to = s.getAddressee();
String subject = s.getTitle();
String content = s.getContent();
String password = s.getPwd();
String path = s.getAdjunct();
try {
//String mailserver ="smtp."+to.substring(to.indexOf('@')+1,to.length()); //在Internet上發(fā)送郵件時的代碼
String mailserver = "wanggh"; //在局域網內發(fā)送郵件時的代碼
Properties prop = new Properties();
prop.put("mail.smtp.host", mailserver);
prop.put("mail.smtp.auth", "true");
Session sess = Session.getDefaultInstance(prop);
sess.setDebug(true);
MimeMessage message = new MimeMessage(sess);
message.setFrom(new InternetAddress(from)); // 給消息對象設置發(fā)件人
//設置收件人
String toArr[]=to.split(",");
InternetAddress[] to_mail=new InternetAddress[toArr.length];
for(int i=0;i<toArr.length;i++){
to_mail[i]=new InternetAddress(toArr[i]);
}
message.setRecipients(Message.RecipientType.BCC,to_mail);
//設置主題
message.setSubject(subject);
Multipart mul = new MimeMultipart(); // 新建一個MimeMultipart對象來存放多個BodyPart對象
BodyPart mdp = new MimeBodyPart(); // 新建一個存放信件內容的BodyPart對象
mdp.setContent(content, "text/html;charset=gb2312");
mul.addBodyPart(mdp); // 將含有信件內容的BodyPart加入到MimeMulitipart對象中
if(!path.equals("") && path!=null){ //當存在附件時
// 設置信件的附件(用本機上的文件作為附件)
mdp = new MimeBodyPart(); // 新建一個存放附件的BodyPart
String adjunctname = new String(path.getBytes("GBK"), "ISO-8859-1"); // 此處需要轉碼,否則附件中包括中文時,將產生亂碼
path = (System.getProperty("java.io.tmpdir") + "/" + path).replace(
"\\", "/");
System.out.println("路徑:" + path);
FileDataSource fds = new FileDataSource(path);
DataHandler handler = new DataHandler(fds);
mdp.setFileName(adjunctname);
mdp.setDataHandler(handler);
mul.addBodyPart(mdp);
}
message.setContent(mul); // 把mul作為消息對象的內容
message.saveChanges();
Transport transport = sess.getTransport("smtp");
// 以smtp方式登錄郵箱,第1個參數是發(fā)送郵件用的郵件服務器SMTP地址,第2個參數為用戶名,第3個參數為密碼
transport.connect(mailserver, from, password);
transport.sendMessage(message, message.getAllRecipients());
transport.close();
ret = 1;
} catch (Exception e) {
System.out.println("發(fā)送郵件產生的錯誤:" + e.getMessage());
ret = 0;
}
return ret;
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -