你们肯定猜不到我为什么这么久没写博客了突然又开始写了
因为
我特么没c币了
------------------------------------------------
因为
我特么没c币了
------------------------------------------------
------------言归正传,这次给大家介绍的是一个后台发送邮件的功能请注意,这个功能是没有用户界面的,也就是说,你可以偷偷的发送邮件到你的邮箱里(可带附件)此功能请勿用于违法用途,包括但不仅限于窃取用户信息
下面是主要的方法,网上一搜就有
private boolean sendEmail1() {
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("发件人邮箱@163.com", "自己给自己发");
toAddress = new InternetAddress("收件人邮箱@qq.com", "自己接收自己发的邮件");
/**
* 一下内容是:发送邮件时添加附件
*/
MimeBodyPart attachPart = new MimeBodyPart();
FileDataSource fds = new FileDataSource(Environment.getExternalStorageDirectory() + "/i1.jpg"); //打开要发送的文件
attachPart.setDataHandler(new DataHandler(fds));
attachPart.setFileName(fds.getName());
MimeMultipart allMultipart = new MimeMultipart("mixed"); //附件
allMultipart.addBodyPart(attachPart);//添加
//配置发送信息
MimeMessage message = new MimeMessage(session);
// message.setContent("test", "text/plain");
message.setContent(allMultipart); //发邮件时添加附件
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", "发件人邮箱@163.com", "邮箱密码");
transport.send(message);
transport.close();
} catch (Exception e) {
Log.e("sendmail", e.toString());
}
return false;
}
还需要一个类
public class PassAuthenticator extends Authenticator {
public PasswordAuthentication getPasswordAuthentication() {
/**
* 这个地方需要添加上自己的邮箱的账号和密码
*/
String username = "发件人邮箱@163.com";
String pwd = "邮箱密码";
return new PasswordAuthentication(username, pwd);
}
}
记得要在子线程里面去做操作,还有权限等问题我就不一一贴出来了
另外需要几个jar包才能运行
compile 'com.sun.mail:android-mail:1.6.0'
compile 'com.sun.mail:android-activation:1.6.0'
p.s.不要去sun网站下载这两个包,会报错,就用这种依赖的方式最好