这是我能够成功发送邮件的代码
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/