如何从你的安卓应用发送邮件?

原文:https://www . geesforgeks . org/如何从你的安卓应用程序发送电子邮件/

在本文中,您将制作一个基本的 android 应用程序,可以用来通过您的 android 应用程序发送电子邮件。

您可以在的帮助下这样做,动作与带有额外字段的动作 _ 发送相同:

  • 邮件 id 您要向其发送邮件,
  • 电子邮件主题
  • 邮件正文

基本上意图是一个简单的消息对象,用于在安卓组件之间进行通信,如活动、内容提供商、广播接收器和服务,这里用于发送电子邮件。

这个应用程序基本上包含一个编辑文本的活动,从用户那里输入电子邮件地址、主题和正文,并点击按钮发送该电子邮件。

  • 第一步。activity _ main . XML activity _ main . XML 包含一个相对布局,其中包含三个用于收件人邮件 id 的 Edit 文本、另一个用于邮件主题和最后一个用于邮件正文的 Edit 文本、三个用于标签的 TextViews 和一个用于开始意图或发送邮件的按钮:

    activity _ main . XML

    ```java <?xml version="1.0" encoding="utf-8"?>

        EditText           android:id="@+id/editText1"           android:layout_width="wrap_content"           android:layout_height="wrap_content"           android:layout_alignParentRight="true"           android:layout_alignParentTop="true"           android:layout_marginRight="22dp"           android:layout_marginTop="18dp"         /  

        EditText           android:id="@+id/editText2"           android:layout_width="wrap_content"           android:layout_height="wrap_content"           android:layout_below="@+id/editText1"           android:layout_alignLeft="@+id/editText1"           android:layout_marginTop="20dp"           /    

        EditText           android:id="@+id/editText3"           android:layout_width="wrap_content"           android:layout_height="wrap_content"          android:layout_marginTop="30dp"           android:layout_below="@+id/editText2"           android:layout_alignLeft="@+id/editText2"           /  

        <TextView           android:id="@+id/textView1"          android:textColor="#0F9D58"         android:text="Send To:"          android:layout_width="wrap_content"           android:layout_height="wrap_content"           android:layout_alignBaseline="@+id/editText1"           android:layout_alignBottom="@+id/editText1"           android:layout_alignParentLeft="true"           />  

    <TextView           android:id="@+id/textView2"          android:textColor="#0F9D58"         android:text="Email Subject:"          android:layout_width="wrap_content"           android:layout_height="wrap_content"           android:layout_alignBaseline="@+id/editText2"           android:layout_alignBottom="@+id/editText2"           android:layout_alignParentLeft="true"           />  

    <TextView           android:id="@+id/textView3"           android:textColor="#0F9D58"         android:text="Email Body:"         android:layout_width="wrap_content"           android:layout_height="wrap_content"           android:layout_alignBaseline="@+id/editText3"           android:layout_alignBottom="@+id/editText3"            />  

        <Button           android:id="@+id/button"           android:text="Send email!!"         android:layout_width="wrap_content"           android:layout_height="wrap_content"           android:layout_alignLeft="@+id/editText3"           android:layout_below="@+id/editText3"           android:layout_marginLeft="76dp"           android:layout_marginTop="20dp"            />     ```

  • Step 2. MainActivity.java In Main activity Intent object is created and its action is defined to ACTION_SEND to send email, with Intent three extra fields are also added using putExtra function.These fields are:

    • 收件人的电子邮件
    • 电子邮件主题
    • 电子邮件正文

    setOnClickListener 附加在带有意图对象的按钮上,以动作为 ACTION_SEND 进行意图,发送电子邮件,意图类型如代码所示。

    下面是完整的 java 代码,用于通过 android 应用程序发送电子邮件:

    MainActivity.java

    ```java package com.geeksforgeeks.phonecall;

    import android.os.Bundle; import android.support.v7.app.AppCompatActivity; import android.content.Intent; import android.widget.EditText; import android.view.View; import android.view.View.OnClickListener; import android.net.Uri; import android.widget.Button;

    public class MainActivity extends AppCompatActivity {

    // define objects for edit text and button     Button button;     EditText sendto, subject, body;

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

    // Getting instance of edittext and button         sendto = findViewById(R.id.editText1);         subject = findViewById(R.id.editText2);         body = findViewById(R.id.editText3);         button = findViewById(R.id.button);

    // attach setOnClickListener to button         // with Intent object define in it         button.setOnClickListener(new OnClickListener() {

    @Override             public void onClick(View view)             {                 String emailsend = sendto.getText().toString();                 String emailsubject = subject.getText().toString();                 String emailbody = body.getText().toString();

    // define Intent object                 // with action attribute as ACTION_SEND                 Intent intent = new Intent(Intent.ACTION_SEND);

    // add three fiels to intent using putExtra function                 intent.putExtra(Intent.EXTRA_EMAIL,                                 new String[] { emailsend });                 intent.putExtra(Intent.EXTRA_SUBJECT, emailsubject);                 intent.putExtra(Intent.EXTRA_TEXT, emailbody);

    // set type of intent                 intent.setType("message/rfc822");

    // startActivity with intent with chooser                 // as Email client using createChooser function                 startActivity(                     Intent                         .createChooser(intent,                                        "Choose an Email client :"));             }         });     } } ```

输出: