android 發送郵件

最近在做項目的時候,需要用到發送郵件的功能,但是Android 默認的發送郵件不符合要求,界面ui 都是Android 自帶的用戶體驗不是很好,所以需要使用到第三方發送郵件的功能。

1.事先準備

1.1 第三方的jar

這裏寫圖片描述

1.2 發送郵件QQ 的配置

在設置 —> 賬戶 裏面配置修改
這裏寫圖片描述

注意:郵件是可以 自己發送給自己的。smtp 服務是需要開啓的。


2.相關代碼

import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import java.util.Properties;


/**
 * lh on 2016/6/1.
 * javaMail 發送郵件
 */
public class MailUtil{

    private Properties config;

    public MailUtil() {
        config = new Properties();
        config.put("mail.host","smtp.qq.com");
        config.put("mail.transport.protocol","smtps");
        config.put("mail.smtp.auth","true");
        config.put("account","[email protected]");
        config.put("password","xxxx");
    }

    public void send(String content) throws MessagingException {
        Session session = Session.getInstance(config);

        Message message = new MimeMessage(session);
        //郵件發送者
        message.setFrom(new InternetAddress("[email protected]"));
        //郵件接受的賬戶
        message.setRecipients(Message.RecipientType.TO, new InternetAddress[]{new InternetAddress("[email protected]")});
        message.setRecipients(Message.RecipientType.CC, new InternetAddress[]{});
        message.setRecipients(Message.RecipientType.BCC, new InternetAddress[]{});

        message.setSubject("xxxx");
        message.setContent(content, "text/html;charset=utf-8");

        Transport transport = session.getTransport();
        transport.connect(config.getProperty("account"), config.getProperty("password"));
        transport.sendMessage(message, message.getAllRecipients());
        transport.close();

    }
}

注意 : 上述代碼需要不能在主線程裏面調用;

這裏寫圖片描述

這裏寫圖片描述


至此:Android 使用第三方發送郵件的功能完成了!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章