android 发送文字内容到邮箱中并添加附件
2020-12-07 本文已影响0人
我在吉安打螺丝
公司的项目中,要求将app的错误信息采集,记录到本地SD卡中,用户手动点击按钮将错误日志文件通过发送邮件的方式发送到公司指定的邮箱里,于是才有这一篇技术博客
1.首先,我们在AndroidManifest.xml文件中添加权限
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
2.导入相关的jar包,jar包在此
链接:https://pan.baidu.com/s/1zW-FY83xmbJaM8tAqpyx1w
提取码:zvxq

3.在app目录下的build.gradle文件里面引入jar包
implementation files('libs/commons-email-1.2.jar')
implementation files('libs/mail.jar')
implementation files('libs/activation.jar')
implementation files('libs/additionnal.jar')
4.那么接下来就是在activity里面去直接调用方法,发送文件就可以了
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Toolbar toolbar = findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
FloatingActionButton fab = findViewById(R.id.fab);
fab.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Snackbar.make(view, "Replace with your own action", Snackbar.LENGTH_LONG)
.setAction("Action", null).show();
}
});
sendEmail();
}
public void sendEmail(){
new Thread(new Runnable() {
@Override
public void run() {
try {
//创建HtmlEmail类
HtmlEmail email = new HtmlEmail();
/**填写邮件的主机域名,我这里使用的是腾讯企业邮箱
不同的邮箱的主机地址不一样 **/
/**
* qq邮箱
*/
//email.setHostName("pop.qq.com");
/**
* 腾讯企业邮箱
*/
email.setHostName("pop.exmail.qq.com");
email.setTLS(true);
email.setSSL(true);
//设置字符编码格式,防止中文乱码
email.setCharset("gbk");
//设置收件人的邮箱
email.addTo("*******");
//设置发件人的邮箱
email.setFrom("*****");
//填写发件人的邮箱和授权码
email.setAuthentication("*****", "****");
//填写邮件主题
email.setSubject("日志");
//填写邮件内容
email.setMsg("错误信息");
//添加附件 创建附件
EmailAttachment attachment = new EmailAttachment();
//附件在手机中的文件路径
attachment.setPath(Environment.getExternalStorageDirectory().getAbsolutePath() + "/HCT/logcat.txt");
email.attach(attachment);//添加 --附件
//发送邮件
email.send();
} catch (EmailException e) {
e.printStackTrace();
Log.i("TAG", "---------------->" + e.getMessage());
}
}
}).start();
}
}