最近在做项目的时候,需要用到发送邮件的功能,但是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","xxxx@qq.com");
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("xxxx@qq.com"));
//邮件接受的账户
message.setRecipients(Message.RecipientType.TO, new InternetAddress[]{new InternetAddress("xxxxx@qq.com")});
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 使用第三方发送邮件的功能完成了!