Android:如何确认邮件发送成功

标签 android email android-intent

这是我能够成功发送邮件的代码

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();

   }

}   
}
}

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

最佳答案

您不能使用:android.content.Intent.ACTION_SEND 来做到这一点。 只需尝试使用邮件应用程序将邮件发送到不存在的电子邮件 ID。您会看到该应用程序不会通知您交付失败。使用 android.content.Intent.ACTION_SEND,您实际上是将 Intent 传递给同一个应用程序,以便为您完成电子邮件发送任务。因此,您永远不会知道您的邮件投递是否失败。

解决方法。 您需要使用第三方库 mail.jar 或类似的东西来实现电子邮件传送。但问题是您需要同时拥有发件人的 mailID 和 PASSWORD 才能进行设置。也许您可以拥有一个可以发送邮件的虚拟电子邮件帐户。

This可以提供帮助。

关于Android:如何确认邮件发送成功,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20090111/

相关文章:

java - Android - 从路径中删除行

java - 如何将值从 Activity 传递到 Fragment?

Sharepoint 任务列表不会发送有关项目创建的电子邮件

java - 如何使用intent settype搜索自定义文件扩展名的文本文件

android - 我可以将外部 XML 文件用于 Android 中的布局吗?

java - 多个 Activity 的相同 Intent 过滤器

android - 如何将 png 直接转换为 android 矢量绘图?

android - 在我所有的应用程序中显示 View

email - 如何发送行超过 990 个字符的 csv 附件?

python - 使用 Django 通过 gmail 发送电子邮件时出现 ConnectionRefusedError