2009年2月10日 星期二

JAVAMAIL範例1(需要認證的smtp)

最近mail server升級,結果部分系統的發信機制出了問題,所以需要簡單的範例程式來測一下,但是我不會java,只好上網稍微研究了一下囉,簡單的code卻花了我不少時間研究,分享給有需要的朋友,這個blogger不允許直接貼上完整的jsp程式碼囉,所以我只列出主要的,記得"<"與"%"還有"%"跟">"是沒有空白的喔

< % @page import="java.util.*" % >
< % @page import="javax.mail.*" % >
< % @page import="javax.activation.*" % >
< % @page import="javax.mail.internet.*" % >


String host = "發信伺服器";
String receiver = "收件者";
String sender = "寄件者";
String subject = "主旨";
String mess = "內文";
String username = "帳號";
String password = "密碼";

boolean sessionDebug = false;

//Get system properties
Properties prop = System.getProperties();
prop.put("mail.smtp.host",host); //指定SMTP server
prop.put("mail.transport.protocol","smtp"); //設定傳送協定
prop.put("mail.smtp.auth","true"); //設定是否須smtp驗證

// 產生新的Session
javax.mail.Session mailsess = Session.getDefaultInstance(prop);
mailsess.setDebug(sessionDebug); //是否在控制台顯示debug訊息

Message msg = new MimeMessage(mailsess);
//設定郵件
msg.setFrom(new InternetAddress(sender)); // 設定傳送郵件的發信人
InternetAddress[] address= {new InternetAddress(receiver)}; // 設定傳送郵件的收件者
msg.setRecipients(Message.RecipientType.TO, address);
msg.setSubject(subject); //設定主題
msg.setText(mess); //設定內文

//發送郵件
Transport transport = mailsess.getTransport("smtp"); //只支持IMAP、 SMTP和 POP3
transport.connect(host, username, password); //以smtp的方式登入mail server
transport.sendMessage(msg,msg.getAllRecipients());
transport.close();
% >

0 意見:

張貼留言