最近在做項目的時候,需要用到發送郵件的功能,但是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 使用第三方發送郵件的功能完成了!