安卓手机:如何确认电子邮件发送成功

5

这是我的代码,可以成功发送电子邮件

package com.send.email;    

import android.app.Activity;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;

public class MainActivity extends Activity {

Button send;

EditText address, subject, emailtext;
/** Called when the activity is first created. */

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

send = (Button) findViewById(R.id.emailsendbutton);

address = (EditText) findViewById(R.id.emailaddress);

 subject = (EditText) findViewById(R.id.emailsubject);

 emailtext = (EditText) findViewById(R.id.emailtext);

send.setOnClickListener(new OnClickListener() {

public void onClick(View v) {

// TODO Auto-generated method stub


final Intent emailIntent = new Intent(android.content.Intent.ACTION_SEND);

emailIntent.setType("image/png");

emailIntent.putExtra(android.content.Intent.EXTRA_EMAIL, new String[] { address.getText().toString() });

emailIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, subject.getText());

emailIntent.putExtra(android.content.Intent.EXTRA_TEXT, emailtext.getText());

MainActivity.this.startActivity(Intent.createChooser(emailIntent,"Send mail..."));

}

});
}


@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data)
{

if(requestCode==1)
{
   if(requestCode==1 && resultCode==Activity.RESULT_OK)    
   {
       Toast.makeText(this, "Mail sent.", Toast.LENGTH_SHORT).show();


   }
   else if (requestCode==1 && resultCode==Activity.RESULT_CANCELED)
   {
       Toast.makeText(this, "Mail canceled.", Toast.LENGTH_SHORT).show();


   }
   else 
   {
       Toast.makeText(this, "Plz try again.", Toast.LENGTH_SHORT).show();

   }

}   
}
}

我想获取一些信息来检查电子邮件是否已成功发送。它总是打印出“发送电子邮件”的消息,然后打开内置的电子邮件客户端并发送电子邮件。

我有完全相同的问题。由于某种原因,我的onActivityResult没有触发;你是怎么知道邮件已发送的? - Eenvincible
1个回答

1
你不能使用android.content.Intent.ACTION_SEND来实现此功能。尝试使用邮件应用程序向不存在的电子邮件ID发送邮件。您将看到该应用程序不会通知您投递失败。使用android.content.Intent.ACTION_SEND,您实际上是将意图传递给同一应用程序以为您执行电子邮件投递任务。因此,您将永远不会知道您的邮件投递是否失败。
解决方法是使用第三方库mail.jar或类似的内容来实现电子邮件投递。但问题在于您需要设置发件人的邮件ID和密码。也许您可以使用虚拟的电子邮件帐户来发送邮件。 这里 可以帮助您。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接