Trivial: Obtenga la confirmación del correo electrónico enviado en Android

Después de comenzar un bash de correo electrónico, ¿cómo puedo obtener la confirmación de que el correo electrónico ha enviado o ha habido un error en la actividad desde la que se realizó?

Intent emailIntent = new Intent(Intent.ACTION_SEND); emailIntent.setType("png/image"); String subject = "Email Subject"; String body = "Message Body"; emailIntent.putExtra(Intent.EXTRA_SUBJECT, subject); emailIntent.putExtra(Intent.EXTRA_TEXT, body); emailIntent.putExtra(Intent.EXTRA_STREAM, Uri.parse("file:///sdcard/" + IMAGE_FILENAME)); startActivity(Intent.createChooser(emailIntent, "Send email...")); //Here I need to do something on a successfully sent email 

Tal vez comience activityForResult? Pero, ¿qué resultado debo esperar si hay alguno?

Eso realmente depende de la aplicación que lanza tu Intent . Podría ser la aplicación de Gmail, podría ser la aplicación de correo electrónico, o podría ser cualquier aplicación de terceros. Debido a esto, no hay una manera 100% confiable de determinar si el usuario realmente presiona Enviar o no.

Lo único que puede hacer es verificar si las aplicaciones de Gmail y correo electrónico devuelven algo relevante cuando se lo llama a través de startActivityForResult y confiar en eso. Pero ten en cuenta que no es confiable porque, de nuevo, podría haber aplicaciones de terceros. Además, dado que estas aplicaciones no especifican públicamente lo que devuelven, pueden cambiar eso en algún momento sin previo aviso.

no puede obtener ningún código de resultado útil de un bash de correo electrónico. onActivityResult siempre devuelve 0 tan pronto como se inicia el envío o se cancela el envío.

Además, si adjuntas archivos, se llama a ActionResult ANTES de que se lean esos archivos.

No puedes hacer esto.

ACTION_SEND NO tiene ningún resultado, como resultado siempre obtienes el valor predeterminado que es RESULT_CANCELED.

Tampoco puede verificarlo con los datos de Intento que regresan porque siempre es nulo enviar o descartar.

Mira mi pregunta y las respuestas: Obtener el recuento de recepciones del correo electrónico enviado en Android