在Android中发送邮件需要到三个JAVA包: mail.jar+activation.jar+additionnal.jar
加载包的方法: 右键项目->Build path->Add Libraries->user Libraries->new 然后 addJARs
所需权限:
Android 中使用163发送邮件需要一个帐号。
就需要使用到下面这个类:
用于验证帐号密码用。
public class PassAuthenticator extends Authenticator
{
public PasswordAuthentication getPasswordAuthentication()
{
String username = "邮箱帐号";
String pwd = "邮箱密码";
return new PasswordAuthentication(username, pwd);
}
}
接下来使用一个自定义方法即可实现邮件发送。
@SuppressWarnings("static-access")
private boolean sendEmail(String emailString)
{
Properties props = new Properties();
props.put("mail.smtp.protocol", "smtp");
props.put("mail.smtp.auth", "true"); //设置要验证
props.put("mail.smtp.host", "smtp.163.com");//设置host
props.put("mail.smtp.port", "25");//设置端口
PassAuthenticator pass = new PassAuthenticator();//获取帐号密码
Session session = Session.getInstance(props, pass); //获取验证会话
try
{
//配置发送及接收邮箱
InternetAddress fromAddress, toAddress;
fromAddress = new InternetAddress("knowheart@163.com(发送邮件地址)", "主题");
toAddress= new InternetAddress("qq@qq.com(接收邮件地址)", "");
//配置发送信息
MimeMessage message = new MimeMessage(session);
message.setContent("Hello", "text/plain");
message.setSubject("内容发送");
message.setFrom(fromAddress);
message.addRecipient(javax.mail.Message.RecipientType.TO, toAddress);
message.saveChanges();
//连接邮箱并发送
Transport transport = session.getTransport("smtp");
transport.connect("smtp.163.com", "帐号", "密码");
transport.send(message);
transport.close();
} catch (MessagingException e)
{
// TODO Auto-generated catch block
Log.i("Msg", e.getMessage());
e.printStackTrace();
}
catch (UnsupportedEncodingException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
return false;
}
如果遇到错误:
1. 连接不上邮箱
确定是否添加了网络权限
2. 邮箱验证失败
确定发送邮箱或密码是否正确