通過JMail發送郵件例子
import java.util.Date; import java.util.Properties; import java.util.Vector;import javax.activation.DataHandler; import javax.activation.FileDataSource; import javax.mail.Address; import javax.mail.BodyPart; import javax.mail.Message; import javax.mail.MessagingException; import javax.mail.Multipart; import javax.mail.SendFailedException; 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 sun.misc.BASE64Encoder;
public class MailSend {
private MimeMessage mimeMsg; //MIME郵件對象 private Session session; //郵件會話對象 private Properties props; //系統屬性 private boolean needAuth = false; //smtp是否需要認證 private String username = ""; //smtp認證用戶名和密碼 private String password = ""; private Multipart mp = new MimeMultipart(); //Multipart對象,郵件內容,標題,附件等內容均添加到其中后再生成MimeMessage對象 public MailSend() { try { // System.out.println("設置系統屬性:mail.smtp.host = "+"mail.tplife.com"); if (props == null) { props = System.getProperties(); //獲得系統屬性對象 } props.put("mail.smtp.host", "mail.tplife.com"); //設置SMTP主機 // System.out.println("準備獲取郵件會話對象!"); session = Session.getDefaultInstance(props, null); //獲得郵件會話對象 mimeMsg = new MimeMessage(session); //創建MIME郵件對象 } catch (Exception e) { System.err.println("郵件初始化失敗!" + e); } } public void setSubject(String sub) { try { mimeMsg.setSubject(sub, "GB2312"); // System.out.println("設置郵件標題為:" + sub + "."); } catch (Exception e) { System.err.println("郵件標題設置失敗!" + e); } } public void setContent(String text, String type) { try { BodyPart bp = new MimeBodyPart(); bp.setContent(text, type); mp.addBodyPart(bp); // System.out.println("正在設置郵件內容"); } catch (Exception e) { System.err.println("郵件內容設置失敗!" + e); } } public void setText(String text) { try { BodyPart bp = new MimeBodyPart(); bp.setText(text); mp.addBodyPart(bp); // System.out.println("正在設置郵件內容"); } catch (Exception e) { System.err.println("郵件內容設置失敗!" + e); } } public void addAttach(String AttachURL) { try { //添加附件 BodyPart bp = new MimeBodyPart(); BASE64Encoder enc = new BASE64Encoder();//解決附件名亂碼問題 FileDataSource fileds = new FileDataSource(AttachURL); bp.setDataHandler(new DataHandler(fileds)); bp.setFileName("=?GBK?B?" + enc.encode((fileds.getName()).getBytes()) + "?="); // System.out.println("增加郵件附件:" + fileds.getName()); mp.addBodyPart(bp); } catch (Exception e) { System.err.println("郵件附件粘貼失敗!" + e); } } public void clearAttach() { try { int n = mp.getCount(); System.out.println(); for (int i = 0; i <= n - 1; i++) { mp.removeBodyPart(0); } mimeMsg.setContent(mp); mimeMsg.saveChanges(); } catch (Exception e) { System.err.println("清除附件失敗!" + e); } } public void setFrom(String address) { try { mimeMsg.setFrom(new InternetAddress(address)); //設置發信人 // System.out.println("正在設置發件人地址"); } catch (Exception e) { System.err.println("郵件發件人地址設置失敗!" + e); } } public void setRecipients(String address) { try { mimeMsg.setRecipients(Message.RecipientType.TO, InternetAddress.parse(address)); //收信人 // System.out.println("正在設置收件人地址"); } catch (Exception e) { System.err.println("郵件收件人地址設置失敗!" + e); } } public void setRecipients(String[] address, String type) { try { Address[] add = new Address[address.length]; if (address.length - 1 >= 0) { for (int i = 0; i <= address.length - 1; i++) { add[i] = new InternetAddress(address[i]); } if (type == null) type = "TO"; if (type == "TO") mimeMsg.setRecipients(Message.RecipientType.TO, add); else if (type == "CC") mimeMsg.setRecipients(Message.RecipientType.CC, add); else if (type == "BCC") mimeMsg.setRecipients(Message.RecipientType.BCC, add);//收信人 else System.out.println("類型不正確!"); /// System.out.println("正在設置收件人地址"); } } catch (Exception e) { System.err.println("郵件收件人地址設置失敗!" + e); } } public void setSentDate() { try { mimeMsg.setSentDate(new Date()); } catch (Exception e) { System.err.println("時間設置失敗!" + e); } } public boolean sendMail() { boolean flag = false; try { mimeMsg.setContent(mp); mimeMsg.saveChanges(); System.out.println("正在發送郵件...."); Session mailSession = Session.getInstance(props, null); Transport transport = mailSession.getTransport("smtp"); transport.connect((String) props.get("mail.smtp.host"), username, password); transport.sendMessage(mimeMsg, mimeMsg.getRecipients(Message.RecipientType.TO)); System.out.println("發送郵件成功!"); transport.close(); flag = true; } catch (SendFailedException e1) { System.err.println("郵件發送失敗SendFailed!" + e1); return false; } catch (MessagingException e2) { System.err.println("郵件發送失敗Messaging!" + e2); return false; } catch (Exception e3) { System.err.println("郵件發送失敗!" + e3); return false; } return flag; } public static void main(String argv[]) { MailSend ms = new MailSend(); ms.setSubject(""); ms.setText(""); ms.setFrom("liumin3@tplife.com"); Vector TO = new Vector(); TO.add("liumin3@tplife.com"); TO.add("liumin3@tplife.com"); ms.setRecipients((String[]) TO.toArray(), "TO"); ms.setSentDate(); ms.sendMail(); }
}</pre>
本文由用戶 m4ed 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!