<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    我的漫漫程序之旅

    專注于JavaWeb開發
    隨筆 - 39, 文章 - 310, 評論 - 411, 引用 - 0
    數據加載中……

    用Apache的Jakarta Commons-Email開源框架發送Email

    Jakarta發布了Commons Emails 1.1leased 版本,目的是為了簡化JavaMail。
    該項目主頁:http://commons.apache.org/email/
    知道有它幾個class嗎?你一定想不到,只有8個!

    好了,開始我們的jakarta commons emails 之旅:)

    一:Quick Start
    通過SimpleEmail發送郵件

    java.lang.Object
    org.apache.commons.mail.Email
       org.apache.commons.mail.SimpleEmail

    SimpleEmail email = new SimpleEmail();
    email.setHostName(
    "mail.4ya.cn");
    email.setAuthentication(
    "<username>","<password>")
    email.addTo(
    "martin.xus@gmail.com""martin");
    email.setFrom(
    "martin@4ya.cn""martin");
    email.setSubject(
    "測試主題");
    email.setMsg(
    "這里是郵件內容");
    email.send();

    就如代碼里字面上的意思一樣簡單:
    1:創建以SimpleEmail對象
    2:設定發送信件的smtp服務器,如果沒有設定,會尋找系統變量中mail.host值。
    3:設定smtp的用戶和密碼
    4:收件人
    5:發件人
    6:主題
    7:內容
    8:發送

    二:發送帶附件的郵件
    我們可以發送本機的附件,當然我們也可以發送非本機的附件,如果發送的是一個存在網絡上的附件的url,則郵件發送的時候會自動下載,添加到附件中。

       1:)發送本地附件:
    EmailAttachment attachment = new EmailAttachment();
    attachment.setPath(
    "test/test.rar");
    attachment.setDisposition(EmailAttachment.ATTACHMENT);
    attachment.setDescription(
    "python resource");
    attachment.setName(
    "resource");
    2:)發送不存在本地的附件
    EmailAttachment attachment = new EmailAttachment();
    attachment.setURL(
    new URL("/pic/2006/2/25/1340002.jpg"));
    attachment.setDisposition(EmailAttachment.ATTACHMENT);
    attachment.setDescription(
    "微笑圖書館");
    attachment.setName(
    "微笑圖書館");
    next,添加附件到我們的郵件中
    MultiPartEmail email = new MultiPartEmail();
    email.setHostName(
    "mail.4ya.cn");
        email.setAuthentication(
    "<username>","<password>")
    email.addTo(
    "martin.xus@gmail.com""martin");
    email.setFrom(
    "martin@4ya.cn""martin");
    email.setSubject(
    "郵件主題");
    email.setMsg(
    "郵件內容");

    //添加附件
    email.attach(attachment);

    //發送郵件
    email.send();

    如果需要發送多個附件,只需創建多個EmailAttachement,即可
    email.attach(attachment1)
    email.attach(attachment2)

    三:發送html格式的郵件
    通過HtmlEmail我們可以發送Html格式的郵件:
    java.lang.Object
      org.apache.commons.mail.Email
        org.apache.commons.mail.MultiPartEmail
              org.apache.commons.mail.HtmlEmail

    如下:
     //HtmlEmail!
     HtmlEmail email = new HtmlEmail();
     email.setHostName(
    "mail.4ya.cn");
        email.setAuthentication(
    "<username>","<password>")
     email.addTo(
    "martin@4ya.cn"martin");
     email.setFrom("martin.xus@gmail.com"martin");
     email.setSubject("主題:該郵件包括html格式內容");
     
     
    // embed the image and get the content id
     
    // 注意這里:embed 將幫助我們創建標簽如:cid:xxx url
    URL url = new URL("/pic/2006/2/25/1340003.gif");
    String cid 
    = email.embed(url, "Apache logo");

    /** *//**
    set the html message
    我們看到HtmlEmail extends Email的,它依然有setMsg(),但是這里發送的郵件包括了插入在郵件內容中的圖片,所以不能在使用了setMsg(),而要以setHtmlMsg 或setTextMsg代碼
    *
    */

    email.setHtmlMsg(
    "<html>The apache logo - <img src=\"cid:"+cid+"\"></html>");

    // set the alternative message
    email.setTextMsg("Your email client does not support HTML messages");
    //set mail
    email.send();

    四:最后一步
    如果需要實現更復雜authenticator 你可以extends javax.mail.Authenticator ,實現你自己的東西,然后調用Email.setAuthenticator(javax.mail.Authenticator newAuthenticator)即可

    這一點jakarta也做了,給我們提供了一個defaultAuthenticator
    java.lang.Object
      javax.mail.Authenticator
          org.apache.commons.mail.DefaultAuthenticator

    覆蓋掉該方法,實現你自己的東東 o_o
    protected javax.mail.PasswordAuthentication getPasswordAuthentication()
    如果需要運行在web容器里,可能需要輔助的mail.jar和activation.jar包.
    可以到我的網盤下載;下載


    posted on 2007-12-25 15:12 々上善若水々 閱讀(2006) 評論(1)  編輯  收藏 所屬分類: JavaWeb

    評論

    # Vnutrennyaya Optimizaciya  回復  更多評論   

    Excuse me. Everybody knows if you are too careful you are so occupied in being careful that you are sure to stumble over something.
    I am from Bolivia and bad know English, give true I wrote the following sentence: "Apr if you using wordpress for your niche websites or blogs, this plugin can help you optimize your blog post urls for search engines.Learn seo or hire hobo to do it for you."

    Waiting for a reply :), Gilbert.
    2009-05-18 20:48 | Vnutrennyaya Optimizaciya
    主站蜘蛛池模板: 亚洲黄色一级毛片| 亚洲va久久久噜噜噜久久狠狠| 911精品国产亚洲日本美国韩国| 国产99久久久久久免费看| 亚洲国产精品尤物yw在线| 午夜免费国产体验区免费的| 亚洲av区一区二区三| 亚洲一区二区三区免费| 国产亚洲精品a在线观看app | 亚洲人成色777777精品| 免费av欧美国产在钱| 亚洲а∨精品天堂在线| 波多野结衣视频在线免费观看| 黄页网址在线免费观看| 伊人婷婷综合缴情亚洲五月| a毛片免费全部在线播放**| 亚洲国产精品热久久| 免费精品国产自产拍在| 亚洲欧洲av综合色无码| 一本久久综合亚洲鲁鲁五月天| 国产成人自产拍免费视频| 亚洲AV无码精品无码麻豆| 69式互添免费视频| 亚洲一卡2卡三卡4卡无卡下载 | 18禁超污无遮挡无码免费网站国产| 亚洲精品无码少妇30P| 亚洲熟伦熟女新五十路熟妇| 久久精品视频免费看| 国产精品亚洲四区在线观看| 全亚洲最新黄色特级网站| 免费无码一区二区三区蜜桃| 国产婷婷综合丁香亚洲欧洲| 全部免费a级毛片| 久久免费看黄a级毛片| 色偷偷亚洲男人天堂| 日韩亚洲欧洲在线com91tv| 99在线视频免费观看视频 | 国产区在线免费观看| 亚洲免费闲人蜜桃| 亚洲第一网站男人都懂| 日本免费xxxx色视频|