android 后台邮件发送,Android 后台发送邮件到指定邮箱

该博客介绍了如何在Android应用中实现当发生错误时,自动将错误信息发送到指定邮箱的功能。通过`MailUtils`类创建邮件并设置发件人、收件人、主题和正文,然后使用SMTP协议配置及授权信息来发送邮件。此功能有助于开发者及时获取客户端错误信息,提高问题排查效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

这个主要是搜集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 后台发送邮件到指定邮箱,希望对大家有所帮助

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值