Estoy tratando de usar un intenciónenviar un correo electrónico desde mi aplicación, pero el campo Para del correo electrónico no se completará. Si agrego código para completar el tema o el texto, funcionan bien. Solo el campo Para no se completará.
También he intentado cambiar el tipo a "text / plain" y "text / html", pero tengo el mismo problema. ¿Alguien puede ayudar por favor?
public void Email(){
Intent emailIntent = new Intent(Intent.ACTION_SEND);
emailIntent.setType("message/rfc822"); //set the email recipient
String recipient = getString(R.string.IntegralEmailAddress);
emailIntent.putExtra(android.content.Intent.EXTRA_EMAIL , recipient);
//let the user choose what email client to use
startActivity(Intent.createChooser(emailIntent, "Send mail using...")); }
El cliente de correo electrónico que intento utilizar es Gmail.
android
android-intent
usuario
fuente
fuente
intent.putExtra(Intent.EXTRA_EMAIL, list.toArray())
estáintent.putExtra(Intent.EXTRA_EMAIL, list.toArray(new String[0]))
Utilizar esta
public void Email(){ // use this to declare your 'recipient' string and get your email recipient from your string xml file Resources res = getResources(); String recipient = getString(R.string.IntegralEmailAddress); Intent emailIntent = new Intent(Intent.ACTION_SEND); emailIntent.setType("message/rfc822"); //set the email recipient emailIntent.putExtra(Intent.EXTRA_EMAIL, recipient); //let the user choose what email client to use startActivity(Intent.createChooser(emailIntent, "Send mail using...")); ``}
Esto funcionará :)
Esto es lo que dice la documentación de Android sobre Intent.Extra_Email
-Una matriz de cadenas de todas las direcciones de correo electrónico de los destinatarios "Para".
Por lo tanto, debe alimentar la cadena correctamente. Puede leer más aquí
http://developer.android.com/guide/components/intents-common.html#Email y aquí http://developer.android.com/guide/topics/resources /string-resource.html O use la acción ACTION_SENDTO e incluya el esquema de datos "mailto:". Por ejemplo:
Intent intent = new Intent(Intent.ACTION_SENDTO); intent.setData(Uri.parse("mailto:")); // only email apps should handle this intent.putExtra(Intent.EXTRA_EMAIL, addresses); intent.putExtra(Intent.EXTRA_SUBJECT, subject); if (intent.resolveActivity(getPackageManager()) != null) { startActivity(intent); }
fuente
En Kotlin - Android
fun sendMail( activity: Activity, emailIds: Array<String>, subject: String, textMessage: String ) { val emailIntent = Intent(Intent.ACTION_SEND) emailIntent.type = "text/plain" emailIntent.putExtra(Intent.EXTRA_EMAIL, emailIds) emailIntent.putExtra(Intent.EXTRA_SUBJECT, subject) emailIntent.putExtra(Intent.EXTRA_TEXT, textMessage) emailIntent.setType("message/rfc822") try { activity.startActivity( Intent.createChooser( emailIntent, "Send email using..." ) ) } catch (ex: ActivityNotFoundException) { Toast.makeText( activity, "No email clients installed.", Toast.LENGTH_SHORT ).show() } }
//argument of function val subject = "subject of you email" val eMailMessageTxt = "Add Message here" val eMailId1 = "[email protected]" val eMailId2 = "[email protected]" val eMailIds: Array<String> = arrayOf(eMailId1,eMailId2) //Calling function sendMail(this, eMailIds, subject, eMailMessageTxt)
Espero que este fragmento de código ayude a los desarrolladores de kotlin.
fuente
private void callSendMeMail() { Intent Email = new Intent(Intent.ACTION_SEND); Email.setType("text/email"); Email.putExtra(Intent.EXTRA_EMAIL, new String[] { "[email protected]" }); Email.putExtra(Intent.EXTRA_SUBJECT, "Feedback"); startActivity(Intent.createChooser(Email, "Send mail to Developer:")); }
fuente
Un par de cosas:
1 - Debe establecer la variable constante de acción como ACTION_SENDTO.
Intent intentEmail = new Intent(Intent.ACTION_SENDTO);
2 - Si desea que se abra solo por correo, use el método setData (): de lo
intentEmail.setData(Uri.parse("mailto:"));
contrario, le pedirá que lo abra como texto, imagen, archivo de audio por otras aplicaciones presentes en su dispositivo.3 - Debe pasar la cadena de ID de correo electrónico como un objeto de matriz y no solo como una cadena. La cadena es: "[email protected]" . Array El objeto de la cadena es: new String [] {"email1", "email2", "more_email"} .
intentEmail.putExtra(Intent.EXTRA_EMAIL, new String[] {"[email protected]", "[email protected]"});
fuente