
Dans certaines applications , on a besoin d'intégrer un module d’envoi des courriels (Feedbacks , informations etc. ). En Android , il est simple de faire ça.
#1. La Méthode:
Pour envoyer un émail depuis une application Android ,on a besoin de connaitre :
- Destinataire
- Destinataire en Cc (copie conforme)(Facultative)
- Destinataire en Cci (copie conforme invisible) (Facultative)
- Objet d’émail
- Message d’émail
- Pièce jointe
String to = "email de destinataire";
String subject = "objet d'email";
String message = "message";
String toCc = "email de destinataire en CC";
String toCci = "email de destinataire en CCi";
Intent email = new Intent(Intent.ACTION_SEND);
email.putExtra(Intent.EXTRA_EMAIL, new String[]{ to});
//email.putExtra(Intent.EXTRA_CC, new String[]{ toCc});
//email.putExtra(Intent.EXTRA_BCC, new String[]{toCci});
//email.putExtra(Intent.EXTRA_STREAM, "file:///sdcard/file.pdf");
email.putExtra(Intent.EXTRA_SUBJECT, subject);
email.putExtra(Intent.EXTRA_TEXT, message);
email.setType("message/rfc822");
startActivity(Intent.createChooser(email, "Choisissez un client
de messagerie:"));
#2. Exemple:
Pour bien comprendre , on va appliquer la méthode déjà écrite dans une application.On crée un nouveau projet Android:
Application Name: Email Android Exemple
Package Name :com.tutozone.emailandroid
Activity Name: SendEmailActivity
Dans la layout "main.xml" , on crée 3 "EditText" et 1 bouton
< LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/linearLayout1"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
< TextView
android:id="@+id/textViewPhoneNo"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="To : "
android:textAppearance="?android:attr/textAppearanceLarge" />
< EditText
android:id="@+id/editTextTo"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:inputType="textEmailAddress" >
< /EditText>
< TextView
android:id="@+id/textViewSubject"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Subject : "
android:textAppearance="?android:attr/textAppearanceLarge" />
< EditText
android:id="@+id/editTextSubject"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
>
< /EditText>
< TextView
android:id="@+id/textViewMessage"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Message : "
android:textAppearance="?android:attr/textAppearanceLarge" />
< EditText
android:id="@+id/editTextMessage"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:gravity="top"
android:inputType="textMultiLine"
android:lines="5" />
< Button
android:id="@+id/buttonSend"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Send" />
< /LinearLayout>
Maintenant dans l'activité principale "SendEmailActivity.java", on va mettre le code d'envois dans une methode , et on l'appelle lors de l'action du bouton:
public class SendEmailActivity extends Activity {
Button buttonSend;
EditText textTo;
EditText textSubject;
EditText textMessage;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
buttonSend = (Button) findViewById(R.id.buttonSend);
textTo = (EditText) findViewById(R.id.editTextTo);
textSubject = (EditText) findViewById(R.id.editTextSubject);
textMessage = (EditText) findViewById(R.id.editTextMessage);
buttonSend.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
sendEmail();
}
});
}
public void sendEmail()
{
String to = textTo.getText().toString();
String subject = textSubject.getText().toString();
String message = textMessage.getText().toString();
//String toCc = "email de destinataire en CC";
//String toCci = "email de destinataire en CCi";
Intent email = new Intent(Intent.ACTION_SEND);
email.putExtra(Intent.EXTRA_EMAIL, new String[]{ to});
//email.putExtra(Intent.EXTRA_CC, new String[]{ toCc});
//email.putExtra(Intent.EXTRA_BCC, new String[]{toCci});
//email.putExtra(Intent.EXTRA_STREAM, "file:///sdcard/file.pdf");
email.putExtra(Intent.EXTRA_SUBJECT, subject);
email.putExtra(Intent.EXTRA_TEXT, message);
email.setType("message/rfc822");
startActivity(Intent.createChooser(email, "Choisissez un client
de messagerie:"));
}
}
#3. Test:
Si vous testez l'application dans un émulateur , un erreur s'affiche:“No application can perform this action“.
| Erreur dans l'émulateur |
#4. Code complet:
Le code de notre application se trouve dans le site GitHub.
![]() |
| Code source |


1 commentaires:
merci pour votre reponse mais y a-t-il pas un moyen pour envoyer le mail automatiquement sans passer par le choix de la messagerie à utiliser?
ReplyEnregistrer un commentaire