2013-08-22

Отправка E-mail в Android

Однажды я столкнулся с проблемой отправки e-mail с Android программно, как его реализовать? Оказывается это очень просто. Но для этого нужна настроенная программа передачи и приёма почты. Давайте перейдём к реализации...



Обычно у любого e-maila есть поля: Кому, Тема и Сообщение. когда вы будете реализовать отправку вы можете заполнить их или оставить пустыми...

Я создал вот такой Layout с двумя кнопками: Рассказать друзьям, Написать автору

Main.xml:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context=".MainActivity" >

    <Button
        android:id="@+id/button1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignParentRight="true"
        android:layout_alignParentTop="true"
        android:layout_marginTop="64dp"
        android:text="Рассказать друзьям" />

    <Button
        android:id="@+id/button2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@+id/button1"
        android:layout_alignRight="@+id/button1"
        android:layout_below="@+id/button1"
        android:layout_marginTop="21dp"
        android:text="Написать автору" />


</RelativeLayout>


Вид лейаута:

Рассказать друзьям (здесь заполняются поля Тема и Текст):

Intent email = new Intent(Intent.ACTION_SEND);        
     //Устанавливаем Тему сообщения
     email.putExtra(Intent.EXTRA_SUBJECT, "Тема письма");
     //Устанавливаем текст сообщение
     email.putExtra(Intent.EXTRA_TEXT, "Текст сообщения");
     //тип сообщения
     email.setType("message/rfc822");
startActivity(Intent.createChooser(email, "Выберите email клиент :"));


Результат:

Написать автору (здесь только поле Кому, н-р e-mail разработчика dev@developer.com):

Intent email1 = new Intent(Intent.ACTION_SEND);
//Указываем получателя
email1.putExtra(Intent.EXTRA_EMAIL, new String[]{"dev@developer.com"});
email1.setType("message/rfc822");
startActivity(Intent.createChooser(email1, "Выберите email клиент :")); 


Результат:


Вот весь MainActivity.java:

package com.beksultanzhailybayev.helloandroid;

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

public class MainActivity extends Activity implements OnClickListener {

Button button1;
Button button2;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

button1 = (Button) findViewById(R.id.button1);
   button1.setOnClickListener(this);
 
   button2 = (Button) findViewById(R.id.button2);
   button2.setOnClickListener(this);
 
}

@Override
 public void onClick(View v) {
   switch (v.getId()) {
   case R.id.button1:
    Intent email = new Intent(Intent.ACTION_SEND);        
        //Устанавливаем Тему сообщения
        email.putExtra(Intent.EXTRA_SUBJECT, "Тема письма");
        //Устанавливаем текст сообщение
        email.putExtra(Intent.EXTRA_TEXT, "Текст сообщения");
        //тип сообщения
        email.setType("message/rfc822");
        startActivity(Intent.createChooser(email, "Выберите email клиент :"));
     break;
   case R.id.button2:
    Intent email1 = new Intent(Intent.ACTION_SEND);
    //Указываем получателя
    email1.putExtra(Intent.EXTRA_EMAIL, new String[]{"dev@developer.com"});
        email1.setType("message/rfc822");
        startActivity(Intent.createChooser(email1, "Выберите email клиент :"));
     break;
   }
 }
}


Вот и всё! Код очень прост, да и вообще отправка e-mail проста до безобразия...  В следующих уроках я покажу вам как реализовать переход между активити в Android и допишем наш AlertDialog (Экран приветствия)...

Комментариев нет:

Отправить комментарий