成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

使用Jodd簡化郵件服務(wù)的開發(fā)

MoAir / 1944人閱讀

摘要:最近需要做一個郵件相關(guān)的功能,考慮到自建郵件服務(wù)器維護起來比較麻煩,于是選擇第三方郵件服務(wù)。郵件發(fā)送服務(wù)的對比可以看這篇文章。使用觸發(fā)發(fā)送發(fā)件人收件人主題內(nèi)容使用方式發(fā)送發(fā)件人收件人主題內(nèi)容

最近需要做一個郵件相關(guān)的功能,考慮到自建郵件服務(wù)器維護起來比較麻煩,于是選擇第三方郵件服務(wù)。郵件發(fā)送服務(wù)的對比可以看這篇文章。

最后我選擇了:

sendCloud

mailgun

sendCloud向QQ用戶發(fā)送,mailgun則負責(zé)其他用戶。這就需要我同時為這兩種服務(wù)編寫相應(yīng)的接口。但是它們的文檔里給出的示例代碼又各不相同,有的還不夠優(yōu)雅,比如sendcloud的java示例。兩者依賴的庫又不相同,比如mailgun依賴

jersey-client.jar (version ~ 1.17 - 1.18.1)

jersey-core.jar (version ~ 1.17 - 1.18.1)

jersey-multipart.jar (version ~ 1.17 - 1.18.1)

sendCloud則依賴HttpClient。有沒有一種既能簡化代碼又能實現(xiàn)功能的方案呢,然后我發(fā)現(xiàn)了Jodd。

Jodd介紹:

  

Jodd is set of Java micro frameworks, tools and utilities, under 1.5 MB.
Designed with common sense to make things simple, but not simpler.
Get things done! Build your Beautiful Ideas! Kickstart your Startup!
And enjoy the coding.

很喜歡Jodd的理念:

Think Lightweight, Be Awesome, Get Things Done!

下面開始正題:需要用到的依賴如下:

  
    3.6.5
  

  
        org.jodd
        jodd-http
        ${jodd.version}
  

  
         org.jodd
         jodd-mail
         ${jodd.version}
  

Talk is cheap,貼出代碼。以下僅僅給出簡單的發(fā)送功能,起拋磚引玉的作用,其他功能詳見官網(wǎng)文檔。

mailgun:

import jodd.http.HttpRequest;
import jodd.mail.Email;
import jodd.mail.SendMailSession;
import jodd.mail.SmtpServer;

import java.util.HashMap;
import java.util.Map;


public class MailGun {

    private String SMTP_HOST = "smtp.mailgun.org";

    private String SMTP_USER="YOUR_USER";

    private String SMTP_PASS = "YOUR_PASSWORD";

    private String HTTP_URL="https://api.mailgun.net/v3/YOUR_DOMAIN/messages";

    private String HTTP_API="YOUR_API";


    /**
     * 使用SMTP觸發(fā)發(fā)送
     * @param from 發(fā)件人
     * @param to 收件人
     * @param subject 主題
     * @param text 內(nèi)容
     */
    public void sendBySMTP(String from,String to,String subject,String text){
        SmtpServer smtpServer = SmtpServer.create(SMTP_HOST)
                .authenticateWith(SMTP_USER, SMTP_PASS);
        SendMailSession session = smtpServer.createSession();
        session.open();

        Email email = Email.create()
                .from(from)
                .to(to)
                .subject(subject)
                .addHtml(text);
        session.sendMail(email);
        session.close();
    }

    /**
     * 使用HTTP方式發(fā)送
     * @param from 發(fā)件人
     * @param to 收件人
     * @param subject 主題
     * @param text 內(nèi)容
     */
    public void sendByHTTP(String from,String to,String subject,String text){
        Map formData = new HashMap();
        formData.put("from", from);
        formData.put("to", to);
        formData.put("subject", subject);
        formData.put("text", text);
        HttpRequest
                .post(HTTP_URL)
                .basicAuthentication("api",HTTP_API)
                .form(formData).send();
    }
}

sendCloud:

import jodd.http.HttpRequest;
import jodd.mail.Email;
import jodd.mail.SendMailSession;
import jodd.mail.SmtpServer;

import java.util.HashMap;
import java.util.Map;

public class SendCloud {

    private String HTTP_URL ="http://sendcloud.sohu.com/webapi/mail.send.json";

    private String HTTP_API_USER ="YOUR_API_USER";

    private String HTTP_API_KEY = "YOUR_API_KEY";

    private String FROM = "YPUR_DOMAIN_EMAIL";

    private String SMTP_HOST = "smtpcloud.sohu.com";

    private String SMTP_USER="YOUR_USER";

    private String SMTP_PASS = "YOUR_PASS";

    public void sendBySMTP(String to, String subject, String text){
        SmtpServer smtpServer = SmtpServer.create(SMTP_HOST)
                .authenticateWith(SMTP_USER, SMTP_PASS);
        SendMailSession session = smtpServer.createSession();
        session.open();

        Email email = Email.create()
                .from(FROM)
                .to(to)
                .subject(subject)
                .addHtml(text);
        session.sendMail(email);
        session.close();
    }

    public void sendByHTTP(String to, String subject, String text){
        Map formData = new HashMap();
        formData.put("api_user", HTTP_API_USER);
        formData.put("api_key", HTTP_API_KEY);
        formData.put("from", FROM);
        formData.put("to", to);
        formData.put("subject", subject);
        formData.put("html", text);
        HttpRequest
                .post(HTTP_URL)
                .form(formData)
                .send();
    }
}

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/64350.html

相關(guān)文章

  • Jodd - Java界瑞士軍刀輕量級工具包!

    摘要:介紹是對于開發(fā)更便捷的開源迷你框架,包含工具類實用功能的集合,總包體積不到。你可以把想象成的瑞士軍刀不僅小,鋒利而且包含許多便利的功能。 showImg(https://segmentfault.com/img/remote/1460000015356940); Jodd介紹 Jodd是對于Java開發(fā)更便捷的開源迷你框架,包含工具類、實用功能的集合,總包體積不到1.7M。 Jodd構(gòu)...

    yck 評論0 收藏0
  • 服務(wù)框架 Spark Framework

    摘要:我是廣告本人的直播課程在月份就要開始了,希望小伙伴們支持一下,現(xiàn)在報名有優(yōu)惠噢 源碼:http://git.oschina.net/sancha... Spark Framework beetl fastjson 結(jié)合 項目結(jié)構(gòu)如下 showImg(https://segmentfault.com/img/bVP12A?w=315&h=512); pom.xml如下: 4...

    fasss 評論0 收藏0
  • WakaTime數(shù)據(jù)同步展示工具

    摘要:從年知道后就開始使用它來記錄自己的編碼時間,但作為免費版只能查看最近兩周的數(shù)據(jù),于是很久之前就寫了一個程序同步自己的歷史數(shù)據(jù),不過一直沒找到合適的圖表插件像官網(wǎng)那樣展示數(shù)據(jù)信息。版本的代碼也實現(xiàn)了相關(guān)的同步展示邏輯,代碼在分支中。 從16年知道 WakaTime 后就開始使用它來記錄自己的編碼時間,但作為免費版只能查看最近兩周的數(shù)據(jù),于是很久之前就寫了一個程序同步自己的歷史數(shù)據(jù),不過一...

    focusj 評論0 收藏0
  • apache cxf

    javapublic void testRest_GetScenicListByFilter() throws UnsupportedEncodingException { Filter filter = new Filter(); filter.setCityCode(029); filter.setDistanceFilter(10); ...

    gclove 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<