JavaMail API:
http://www.oracle.com/technetwork/java/javasebusiness/downloads/java-archive-downloads-eeplat-419426.html#javamail-1.4.7-oth-JPR
JavaMail API doc:
https://javamail.java.net/nonav/docs/api/
簡略說明一下這程式在做什麼
讀取一個html檔,並把html的code寫進郵件內文並寄出,收件者看到的畫面會是一個html的畫面。
import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Date;
import java.util.Properties;
import javax.mail.*;
import javax.mail.internet.*;
public class Emailtest {
public static void main(String[] args) throws IOException {
String htmlCode = "";
String myreadline;
FileInputStream fis = new FileInputStream("D:/test.html");
InputStreamReader isr=new InputStreamReader(fis,"UTF-8");
BufferedReader br= new BufferedReader(isr) ;
while (br.ready()) {
myreadline = br.readLine();
htmlCode=htmlCode+myreadline;
}
br.close();
isr.close();
fis.close();
String mailserver = "mail伺服器";
String fromName="寄件者名子";
String from = "寄件者email";
String to = "收件者email";
String subject = "主旨";
//1為需驗證 0為不需驗證
String emailauth = "1";
String emailAcct = "帳號";
String emailPwd = "密碼";
sendEmail(mailserver, from, fromName,to, subject, htmlCode, emailAcct, emailPwd,
emailauth);
}
public static void sendEmail(String mailserver, String from,String fromName, String to,
String subject, String htmlCode, final String emailAcct,
final String emailPwd, String emailauth) throws IOException {
InternetAddress[] address = null;
Session mailSession=null;
try {
Properties props = new Properties();
props.put("mail.host", mailserver);
if("1".equals(emailauth)){
props.put("mail.smtp.auth", "true");
}
props.put("mail.transport.protocol", "smtp");
if ("1".equals(emailauth)) {
mailSession = Session.getInstance(props,
new javax.mail.Authenticator() {
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(emailAcct,emailPwd);
}
});
}
if("0".equals(emailauth)){
mailSession = Session.getDefaultInstance(props,null);
}
//讀取html code
MimeBodyPart textPart = new MimeBodyPart();
StringBuffer html = new StringBuffer();
html.append(htmlCode);
textPart.setContent(html.toString(), "text/html; charset=UTF-8");
Multipart email = new MimeMultipart();
email.addBodyPart(textPart);
// 產生整封 email 的主體 message
Message message = new MimeMessage(mailSession);
//設定郵件內文
message.setContent(email);
// 設定主旨
message.setSubject(subject);
//設定日期
message.setSentDate(new Date());
//設定寄件者
message.setFrom(new InternetAddress(from,fromName));
//設定收件者
address = InternetAddress.parse(to,false);
message.setRecipients(Message.RecipientType.TO, address);
//寄出郵件
Transport.send(message);
} catch (AddressException e) {
e.printStackTrace();
} catch (NoSuchProviderException e) {
e.printStackTrace();
} catch (MessagingException e) {
e.printStackTrace();
}
}
}
沒有留言:
張貼留言