欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Android 后臺發(fā)送郵件到指定郵箱

 更新時間:2017年08月02日 11:15:35   作者:abs625  
這篇文章主要介紹了Android 后臺發(fā)送郵件到指定郵箱的相關(guān)資料,需要的朋友可以參考下

這個主要是搜集app報錯信息之后將信息上傳到郵箱,請不要用做其他非法用途。代碼請參考:

MailUtils.Java
public class MailUtils {
  /**
   * 創(chuàng)建一封只包含文本的簡單郵件
   *
   * @param session 和服務(wù)器交互的會話
   * @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: 收件人(可以增加多個收件人、抄送、密送)
    message.setRecipient(MimeMessage.RecipientType.TO, new InternetAddress(receiveMail, "親愛的開發(fā)者", "UTF-8"));
    // 4. Subject: 郵件主題
    message.setSubject("客戶端錯誤信息", "UTF-8");
    // 5. Content: 郵件正文(可以使用html標(biāo)簽)
    message.setContent("這是一條測試郵件", "text/html;charset=UTF-8");
    // 6. 設(shè)置發(fā)件時間
    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");      // 需要請求認(rèn)證
    //如果遇到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. 根據(jù)配置創(chuàng)建會話對象, 用于和郵件服務(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 獲取郵件傳輸對象
    Transport transport = session.getTransport();
    transport.connect("發(fā)送郵件郵箱", "發(fā)送郵件郵箱登錄密碼");
    // 6. 發(fā)送郵件, 發(fā)到所有的收件地址, message.getAllRecipients() 獲取到的是在創(chuàng)建郵件對象時添加的所有收件人, 抄送人, 密送人
    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 后臺發(fā)送郵件到指定郵箱,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!

相關(guān)文章

  • 利用MVC編寫廣告條輪播效果

    利用MVC編寫廣告條輪播效果

    這篇文章主要為大家詳細(xì)介紹了利用MVC編寫廣告條輪播效果,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-12-12
  • Android仿微信朋友圈全文收起功能示例(附源碼)

    Android仿微信朋友圈全文收起功能示例(附源碼)

    本篇文章主要介紹了Android仿微信朋友圈全文收起功能示例(附源碼),非常具有實用價值,需要的朋友可以參考下。
    2017-02-02
  • Android多線程AsyncTask詳解

    Android多線程AsyncTask詳解

    這篇文章主要為大家詳細(xì)介紹了Android多線程AsyncTask的相關(guān)資料,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-08-08
  • Flutter多項選擇彈窗實現(xiàn)詳解

    Flutter多項選擇彈窗實現(xiàn)詳解

    這篇文章介紹了Flutter多項選擇彈窗實現(xiàn)詳解,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧<BR>
    2021-11-11
  • Android實時文件夾創(chuàng)建方法

    Android實時文件夾創(chuàng)建方法

    這篇文章主要介紹了Android實時文件夾創(chuàng)建方法,涉及基于Activity實現(xiàn)文件實時查詢的相關(guān)技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-09-09
  • Android Listview notifyDataSetChanged() 不起作用的解決方案

    Android Listview notifyDataSetChanged() 不起作用的

    這篇文章主要介紹了Android Listview notifyDataSetChanged()不起作用的解決方法,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友參考下吧
    2024-08-08
  • AndroidStudio替換項目圖標(biāo)ic_launcher操作

    AndroidStudio替換項目圖標(biāo)ic_launcher操作

    這篇文章主要介紹了AndroidStudio替換項目圖標(biāo)ic_launcher操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-08-08
  • Android編程之創(chuàng)建自己的內(nèi)容提供器實現(xiàn)方法

    Android編程之創(chuàng)建自己的內(nèi)容提供器實現(xiàn)方法

    這篇文章主要介紹了Android編程之創(chuàng)建自己的內(nèi)容提供器實現(xiàn)方法,結(jié)合具體實例形式分析了Android創(chuàng)建內(nèi)容提供器的原理、步驟與相關(guān)操作技巧,需要的朋友可以參考下
    2017-08-08
  • Android設(shè)置Padding和Margin(動態(tài)/靜態(tài))的方法實例

    Android設(shè)置Padding和Margin(動態(tài)/靜態(tài))的方法實例

    如何在java代碼中設(shè)置margin,也就是組件與組件之間的間距,下面這篇文章主要給大家介紹了關(guān)于Android設(shè)置Padding和Margin(動態(tài)/靜態(tài))的相關(guān)資料,文中通過實例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-11-11
  • android 修改launcher行數(shù)和列數(shù)的方法

    android 修改launcher行數(shù)和列數(shù)的方法

    這篇文章主要介紹了android 修改launcher行數(shù)和列數(shù)的方法,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下
    2018-07-07

最新評論