Android 发送邮件

依赖

compile 'com.sun.mail:android-mail:1.5.5'
compile 'com.sun.mail:android-activation:1.5.5'

使用

//创建配置文件
Properties props = new Properties();
//开启认证
props.put("mail.smtp.auth", true);
//设置协议方式
props.put("mail.transport.protocol", "smtp");
//设置主机名
props.put("mail.smtp.host", String host);
//设置SSL加密(未采用SSL时,端口一般为25,可以不用设置;采用SSL时,端口为465,需要显示设置)
props.setProperty("mail.smtp.port", String port);
props.setProperty("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory");
props.setProperty("mail.smtp.socketFactory.fallback", "false");
props.setProperty("mail.smtp.socketFactory.port", String port);
//设置账户和密码
props.put("mail.smtp.username",String username);
props.put("mail.smtp.password",String password);
//创建会话,getDefaultInstace得到的始终是该方法初次创建的缺省的对象,getInstace每次获取新对象
Session session = Session.getInstance(props,new SmtpAuthenticator());
//显示错误信息
session.setDebug(true);
//创建发送时的消息对象
MimeMessage message = new MimeMessage(session);
//设置发送发的账户和名称
message.setFrom(new InternetAddress(String senderAccount,String senderName,"UTF-8"));
//获取收件方的账户和名称
message.setRecipients(MimeMessage.RecipientType.TO,String receiverAccount);
//设置主题
message.setSubject(emailMessage.getSubject());
//设置内容
message.setContent(String content,"text/html;charset=UTF-8");
//发送
Transport.send(message);

登录认证类

private static class SmtpAuthenticator extends Authenticator {    
private String mUsername ;    
private String mPassword ;    
public SmtpAuthenticator(String username,String password) {        
    super();        
    this.mUsername = username;        
    this.mPassword = password;    
}    
@Override    
public PasswordAuthentication getPasswordAuthentication() {        
    if ((mUsername != null) && (mUsername.length() > 0) && (mPassword != null)&& (mPassword.length() > 0)) {           
        return new PasswordAuthentication(mUsername, mPassword);      
  }      
 return null;    
}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容