使用AsyncTask发送Android电子邮件

The*_*ion 6 email debugging android asynchronous task

我最近问了一个关于以下代码的问题:

使用JavaMail API在Android中发送电子邮件,而不使用默认/内置应用程序

根据上一个问题,我曾就网络错误问过这个问题:

需要帮助调试电子邮件代码

我的问题是,如何成功发送包含此Android代码的电子邮件,我将如何实现AsyncTask?我看到的每个教程都告诉我我应该这样做

extend AsyncTask {
Run Code Online (Sandbox Code Playgroud)

但是,GMailSender.java已将此定义为:

public class GMailSender extends javax.mail.Authenticator
Run Code Online (Sandbox Code Playgroud)

有人能帮助我吗?谢谢!

注意:

请不要像谁曾-1白痴ED这个问题,并公布了确切的答案作为被赋予使用JavaMail API在Android中发送电子邮件,而不使用缺省的/内置的应用程序.我无法使用那种确切的编码,因为它不再可能在Android应用程序的主线程上运行网络操作.我正在寻找一种方法来使用AsyncTask,以便在后台运行该操作.我无法找到的是怎么做

extend AsyncTask {
Run Code Online (Sandbox Code Playgroud)

没有接触

public class GMailSender extends javax.mail.Authenticator
Run Code Online (Sandbox Code Playgroud)

dok*_*ebi 8

AsyncTaskdoc页面上有一个很好的例子.

将您的GMailSender对象传递给AsyncTask,并GMailSender#sendMail在期间调用doInBackground.

那是,

public void onClick(View v) {
    final GMailSender sender = new GMailSender("username@gmail.com", "password");
    new AsyncTask<Void, Void, Void>() {
        @Override public Void doInBackground(Void... arg) {
            try {   
                sender.sendMail("This is Subject",   
                    "This is Body",   
                    "user@gmail.com",   
                    "user@yahoo.com");   
            } catch (Exception e) {   
                Log.e("SendMail", e.getMessage(), e);   
            } 
        }
    }.execute();

}
Run Code Online (Sandbox Code Playgroud)