Android 后台发送邮件到指定邮箱
程序员文章站
2023-11-29 19:24:58
这个主要是搜集app报错信息之后将信息上传到邮箱,请不要用做其他非法用途。代码请参考:
mailutils.java
public class mailutil...
这个主要是搜集app报错信息之后将信息上传到邮箱,请不要用做其他非法用途。代码请参考:
mailutils.java public class mailutils { /** * 创建一封只包含文本的简单邮件 * * @param session 和服务器交互的会话 * @param sendmail 发件人邮箱 * @param receivemail 收件人邮箱 * @return * @throws exception */ public static mimemessage createmimemessage(session session, string sendmail, string receivemail) throws exception { // 1. 创建一封邮件 mimemessage message = new mimemessage(session); // 2. from: 发件人 message.setfrom(new internetaddress(sendmail, "test", "utf-8")); // 3. to: 收件人(可以增加多个收件人、抄送、密送) message.setrecipient(mimemessage.recipienttype.to, new internetaddress(receivemail, "亲爱的开发者", "utf-8")); // 4. subject: 邮件主题 message.setsubject("客户端错误信息", "utf-8"); // 5. content: 邮件正文(可以使用html标签) message.setcontent("这是一条测试邮件", "text/html;charset=utf-8"); // 6. 设置发件时间 message.setsentdate(new date()); // 7. 保存设置 message.savechanges(); return message; } } mainactivity.java public class mainactivity extends appcompatactivity { private button button; @override protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.activity_main); button = (button) findviewbyid(r.id.button); button.setonclicklistener(new view.onclicklistener() { @override public void onclick(view v) { new thread(new runnable() { @override public void run() { try { sendmail(); }catch (exception e){ e.printstacktrace(); } } }).start(); } }); } private void sendmail() throws exception{ // 1. 创建参数配置, 用于连接邮件服务器的参数配置 properties props = new properties(); // 参数配置 props.setproperty("mail.transport.protocol", "smtp"); // 使用的协议(javamail规范要求) props.setproperty("mail.smtp.host", "smtp.163.com"); // 发件人的邮箱的 smtp 服务器地址 props.setproperty("mail.smtp.auth", "true"); // 需要请求认证 //如果遇到ssl类错误,请打开一下代码 /*final string smtpport = "465"; props.setproperty("mail.smtp.port", smtpport); props.setproperty("mail.smtp.socketfactory.class", "javax.net.ssl.sslsocketfactory"); props.setproperty("mail.smtp.socketfactory.fallback", "false"); props.setproperty("mail.smtp.socketfactory.port", smtpport);*/ // 2. 根据配置创建会话对象, 用于和邮件服务器交互 session session = session.getdefaultinstance(props); // 设置为debug模式, 可以查看详细的发送 log session.setdebug(true); // 3. 创建一封邮件 mimemessage message = mailutils.createmimemessage(session, "发送邮件的邮箱", "接受邮件的邮箱");//我这里是以163邮箱为发信邮箱测试通过 // 4. 根据 session 获取邮件传输对象 transport transport = session.gettransport(); transport.connect("发送邮件邮箱", "发送邮件邮箱登录密码"); // 6. 发送邮件, 发到所有的收件地址, message.getallrecipients() 获取到的是在创建邮件对象时添加的所有收件人, 抄送人, 密送人 transport.sendmessage(message, message.getallrecipients()); // 7. 关闭连接 transport.close(); } } //build.grald 中添加如下两行配置 compile 'com.sun.mail:android-mail:1.5.5' compile 'com.sun.mail:android-activation:1.5.5'
总结
以上所述是小编给大家介绍的android 后台发送邮件到指定邮箱,希望对大家有所帮助
下一篇: Android手机管理工具类详解