2013-11-20 7 views
4

Вот мой код, который способен успешноAndroid: Как подтвердить, что электронная почта была успешно отправлена ​​

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

    } 

} 
} 
} 

Я хочу, чтобы получить некоторую информацию обратно проверить, является ли сообщение было успешно отправлено или не отправлено по электронной почте , Он всегда печатает сообщение «отправить электронную почту» и открывает встроенный почтовый клиент и отправляет электронную почту.

+0

У меня такая же проблема. По какой-то причине мой onActivityResult не срабатывает; как вы узнали, что письмо было отправлено? – Eenvincible

ответ

1

Вы не можете сделать это, используя: android.content.Intent.ACTION_SEND. Просто попробуйте отправить письмо с помощью приложения для почтовой рассылки на идентификатор электронной почты, который не существует. Вы увидите, что приложение не уведомляет вас о неудачной доставке. Используя android.content.Intent.ACTION_SEND, вы фактически передаете намерение одному и тому же приложению выполнить задачу доставки электронной почты для вас. Поэтому вы никогда не узнаете, не закончилась ли ваша доставка почты.

Работа вокруг. Вам необходимо реализовать доставку электронной почты сторонней библиотекой mail.jar или что-то подобное. Но дело в том, что вам нужно иметь mailID и PASSWORD отправителей, чтобы настроить это. Возможно, у вас может быть фиктивная учетная запись электронной почты, с которой вы можете отправить почту.

This может помочь.

Смежные вопросы