Как отправить электронную почту в Android

Как отправить электронную почту в Android

В Android вы можете использоватьIntent.ACTION_SEND для вызова существующего почтового клиента для отправки электронного письма.

Смотрите следующие фрагменты кода:

    Intent email = new Intent(Intent.ACTION_SEND);
    email.putExtra(Intent.EXTRA_EMAIL, new String[]{"[email protected]"});
    email.putExtra(Intent.EXTRA_SUBJECT, "subject");
    email.putExtra(Intent.EXTRA_TEXT, "message");
    email.setType("message/rfc822");
    startActivity(Intent.createChooser(email, "Choose an Email client :"));

P.S This project is developed in Eclipse 3.7, and tested with Samsung Galaxy S2 (Android 2.3.3).

Run & test on real device only.
Если вы запустите это в эмуляторе, вы получите сообщение об ошибке: «No application can perform this action». Этот код работает только на реальном устройстве.

1. Android-макет

Файл: res / layout / main.xml




    

    

        

    

    

    
    

    

    

    

2. Деятельность

Полный класс активности для отправки электронной почты. Прочтите методonClick(), он не требует пояснений.

package com.example.android;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;

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) {

              String to = textTo.getText().toString();
              String subject = textSubject.getText().toString();
              String message = textMessage.getText().toString();

              Intent email = new Intent(Intent.ACTION_SEND);
              email.putExtra(Intent.EXTRA_EMAIL, new String[]{ to});
              //email.putExtra(Intent.EXTRA_CC, new String[]{ to});
              //email.putExtra(Intent.EXTRA_BCC, new String[]{to});
              email.putExtra(Intent.EXTRA_SUBJECT, subject);
              email.putExtra(Intent.EXTRA_TEXT, message);

              //need this to prompts email client only
              email.setType("message/rfc822");

              startActivity(Intent.createChooser(email, "Choose an Email client :"));

            }
        });
    }
}

3. Demo

Посмотрите экранную заставку по умолчанию, заполните детали и нажмите кнопку «Отправить».

send email in android

Будет предложено выбрать существующий почтовый клиент.

send email in android

В этом случае я выбралGmail, и все предыдущие заполненные детали будут автоматически переданы клиентуGmail.

send email in android

Note
Android не предоставляет API для отправки электронной почты напрямую, вам необходимо вызвать существующий клиент электронной почты для отправки электронной почты.

Скачать исходный код

Скачать -Android-Send-Email-Example.zip (16 КБ)