Android 后臺(tái)發(fā)送郵件到指定郵箱
這個(gè)主要是搜集app報(bào)錯(cuò)信息之后將信息上傳到郵箱,請(qǐng)不要用做其他非法用途。代碼請(qǐng)參考:
MailUtils.Java public class MailUtils { /** * 創(chuàng)建一封只包含文本的簡單郵件 * * @param session 和服務(wù)器交互的會(huì)話 * @param sendMail 發(fā)件人郵箱 * @param receiveMail 收件人郵箱 * @return * @throws Exception */ public static MimeMessage createMimeMessage(Session session, String sendMail, String receiveMail) throws Exception { // 1. 創(chuàng)建一封郵件 MimeMessage message = new MimeMessage(session); // 2. From: 發(fā)件人 message.setFrom(new InternetAddress(sendMail, "test", "UTF-8")); // 3. To: 收件人(可以增加多個(gè)收件人、抄送、密送) message.setRecipient(MimeMessage.RecipientType.TO, new InternetAddress(receiveMail, "親愛的開發(fā)者", "UTF-8")); // 4. Subject: 郵件主題 message.setSubject("客戶端錯(cuò)誤信息", "UTF-8"); // 5. Content: 郵件正文(可以使用html標(biāo)簽) message.setContent("這是一條測試郵件", "text/html;charset=UTF-8"); // 6. 設(shè)置發(fā)件時(shí)間 message.setSentDate(new Date()); // 7. 保存設(shè)置 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. 創(chuàng)建參數(shù)配置, 用于連接郵件服務(wù)器的參數(shù)配置 Properties props = new Properties(); // 參數(shù)配置 props.setProperty("mail.transport.protocol", "smtp"); // 使用的協(xié)議(JavaMail規(guī)范要求) props.setProperty("mail.smtp.host", "smtp.163.com"); // 發(fā)件人的郵箱的 SMTP 服務(wù)器地址 props.setProperty("mail.smtp.auth", "true"); // 需要請(qǐng)求認(rèn)證 //如果遇到ssl類錯(cuò)誤,請(qǐng)打開一下代碼 /*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. 根據(jù)配置創(chuàng)建會(huì)話對(duì)象, 用于和郵件服務(wù)器交互 Session session = Session.getDefaultInstance(props); // 設(shè)置為debug模式, 可以查看詳細(xì)的發(fā)送 log session.setDebug(true); // 3. 創(chuàng)建一封郵件 MimeMessage message = MailUtils.createMimeMessage(session, "發(fā)送郵件的郵箱", "接受郵件的郵箱");//我這里是以163郵箱為發(fā)信郵箱測試通過 // 4. 根據(jù) Session 獲取郵件傳輸對(duì)象 Transport transport = session.getTransport(); transport.connect("發(fā)送郵件郵箱", "發(fā)送郵件郵箱登錄密碼"); // 6. 發(fā)送郵件, 發(fā)到所有的收件地址, message.getAllRecipients() 獲取到的是在創(chuàng)建郵件對(duì)象時(shí)添加的所有收件人, 抄送人, 密送人 transport.sendMessage(message, message.getAllRecipients()); // 7. 關(guān)閉連接 transport.close(); } } //build.grald 中添加如下兩行配置 compile 'com.sun.mail:Android-mail:1.5.5' compile 'com.sun.mail:android-activation:1.5.5'
總結(jié)
以上所述是小編給大家介紹的Android 后臺(tái)發(fā)送郵件到指定郵箱,希望對(duì)大家有所幫助,如果大家有任何疑問請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
- Android快速實(shí)現(xiàn)發(fā)送郵件實(shí)例
- Android發(fā)送郵件的方法實(shí)例詳解
- Android中使用Service實(shí)現(xiàn)后臺(tái)發(fā)送郵件功能實(shí)例
- Android監(jiān)聽手機(jī)電話狀態(tài)與發(fā)送郵件通知來電號(hào)碼的方法(基于PhoneStateListene實(shí)現(xiàn))
- Android 后臺(tái)發(fā)送郵件示例 (收集應(yīng)用異常信息+Demo代碼)
- Android開發(fā)中怎樣調(diào)用系統(tǒng)Email發(fā)送郵件(多種調(diào)用方式)
- android實(shí)現(xiàn)自動(dòng)發(fā)送郵件
相關(guān)文章
Flutter多項(xiàng)選擇彈窗實(shí)現(xiàn)詳解
這篇文章介紹了Flutter多項(xiàng)選擇彈窗實(shí)現(xiàn)詳解,對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧<BR>2021-11-11Android實(shí)時(shí)文件夾創(chuàng)建方法
這篇文章主要介紹了Android實(shí)時(shí)文件夾創(chuàng)建方法,涉及基于Activity實(shí)現(xiàn)文件實(shí)時(shí)查詢的相關(guān)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-09-09Android Listview notifyDataSetChanged() 不起作用的
這篇文章主要介紹了Android Listview notifyDataSetChanged()不起作用的解決方法,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧2024-08-08AndroidStudio替換項(xiàng)目圖標(biāo)ic_launcher操作
這篇文章主要介紹了AndroidStudio替換項(xiàng)目圖標(biāo)ic_launcher操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-08-08Android編程之創(chuàng)建自己的內(nèi)容提供器實(shí)現(xiàn)方法
這篇文章主要介紹了Android編程之創(chuàng)建自己的內(nèi)容提供器實(shí)現(xiàn)方法,結(jié)合具體實(shí)例形式分析了Android創(chuàng)建內(nèi)容提供器的原理、步驟與相關(guān)操作技巧,需要的朋友可以參考下2017-08-08Android設(shè)置Padding和Margin(動(dòng)態(tài)/靜態(tài))的方法實(shí)例
如何在java代碼中設(shè)置margin,也就是組件與組件之間的間距,下面這篇文章主要給大家介紹了關(guān)于Android設(shè)置Padding和Margin(動(dòng)態(tài)/靜態(tài))的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-11-11android 修改launcher行數(shù)和列數(shù)的方法
這篇文章主要介紹了android 修改launcher行數(shù)和列數(shù)的方法,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2018-07-07