Apache的開源項目Commons Email發送郵件

jopen 9年前發布 | 4K 次閱讀 Java

需要在代碼里面發郵件是很經常的事情,包括找回密碼,通知用戶領獎,監控報警等。

在Java里面實現比較簡單,Oracle自己提供了 JavaMail, 不過API比較底層,用起來不方便,可以自己封裝下,也可以直接使用Apache的開源項目 Commons Email。 下面的代碼

import org.apache.commons.mail.EmailAttachment;
import org.apache.commons.mail.EmailException;
import org.apache.commons.mail.MultiPartEmail;

import java.net.MalformedURLException; import java.net.URL;

public class MultiPartEmailTest { public static void main(String[] args) throws EmailException, MalformedURLException { MultiPartEmail email = new MultiPartEmail();

    email.setHostName("smtp.tencent.com");

// email.setAuthentication("youremail@qq.com", "***");//郵件服務器驗證:用戶名/密碼 email.setCharset("UTF-8");

    email.setFrom("pony@qq.com", "馬化騰");
    email.addTo("youremail@qq.com");

    email.setSubject("加油奮斗!");
    email.setMsg("come on! 加油奮斗吧,早晚有一天你會出任CEO,迎娶白富美,走上人生巔峰! http://www.qq.com\n\n\n pony");

    EmailAttachment attachment = new EmailAttachment();
    attachment.setPath("d:/lzl.jpg");// 本地文件
    attachment.setDisposition(EmailAttachment.ATTACHMENT);
    attachment.setDescription("林志玲1");
    attachment.setName("lzl_1");
    email.attach(attachment);

    EmailAttachment attachment2 = new EmailAttachment();
    attachment2.setURL(new URL("http://mat1.qq.com/datalib_img/star/pic/lib/2007-01-15/2007011511104716122311.jpg"));//遠程文件
    attachment2.setDisposition(EmailAttachment.ATTACHMENT);
    attachment2.setDescription("林志玲2");
    attachment2.setName("lzl_2");
    email.attach(attachment2);

    email.send();
}

} </pre>

Commons Email支持好幾種格式,包括簡單文本,html,帶附件等。需要的可以自己查看文檔。

基于smtp的協議郵件協議很簡單,大家甚至可以直接用telnet來發送,可以參考這邊文章Java Mail(一):telnet實現發送收取郵件.

一般公司內網沒有驗證發送方,你可以冒充公司任何一個員工發送郵件(包括你們老板),一般外面的郵件服務器,比如qq, 126, 163等,是需要驗證密碼的。重申一遍,別用這個代碼干壞事,后果自負, 與本人無關!

Refs
1. http://blog.csdn.net/ghsau/article/details/8602076
2. http://blog.csdn.net/ghsau/article/details/17839983
3. http://haolloyin.blog.51cto.com/1177454/354320
4. http://www.runoob.com/java/java-sending-email.html
5. https://commons.apache.org/proper/commons-email/
6. http://blog.csdn.net/qiaqia609/article/details/11580589

Written with StackEdit.



 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!