Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> Android 後台發送郵件到指定郵箱

Android 後台發送郵件到指定郵箱

日期:2017/8/18 9:11:44      編輯:關於Android編程

這個主要是搜集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 後台發送郵件到指定郵箱,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對本站網站的支持!

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved