سبد (0)

آموزش ارسال ایمیل در اندروید

آموزش ارسال ایمیل در اندروید

قبل از شروع کردن فعالیت ایمیل شما باید درباره  Intent  اطلاعات داشته باشید.اینتنت یک حمل کننده ی داده از یک کامپوننت با کامپوننت های دیگر از داخل یا خارج برنامه ها است.

برای ارسال یک ایمیل از برنامه ی خود لازم نیست یک Email Client را از اول پیاده سازی کنید.اما شما می توانید از برنامه های پیش فرض ارائه شده در اندروید مانند Gmail , OutLook و K9mail استفاده کنید.برای این هدف نیاز داریم که یک اکتیویتی بنویسیم که Email Client را راه اندازی کند.از یک اینتنت مطلق با یک عمل درست و داده ی درست استفاده میکنیم برای مثال, ما قصد داریم یک ایمیل با استفاده از شئ اینتنت که Email Client ها را راه اندازی کند از برنامه خود ارسال کنیم .

بخش بعدی قسمت های مختلف یک Intent object، که برای ارسال ایمیل لازم می باشد، توضیح می دهد.

شئ اینتنت- عمل ارسال ایمیل

شما ازفعالیت ACTION_SEND برای آغاز یک کاربر ایمیل نصب شده روی دستگاه ایمیل خود، استفاده خواهید کرد. در زیر ترکیب ساده برای ایجاد یک هدف با عمل ACTION_SEND را مشاهده می کنید.

 

Intent emailIntent = new Intent(Intent.ACTION_SEND);

شئ اینتنت- نوع داده برای ارسال ایمیل

برای ارسال یک ایمیل نیاز دارید mailto را مشخص کنید. همان طور که URI از متد ()setData استفاده می کند، و نوع داده با استفاده از متد ()setType از نوع text/plain خواهد بود، مانند زیر:


emailIntent.setData(Uri.parse("mailto:"));
emailIntent.setType("text/plain");

شئ اینتنت- ضمیمه برای ارسال ایمیل

اندروید در پشتیبانی می تواند فیلدهای TO، SUBJECT،CC ، TEXT و غیره را اضافه کند، که می توانند قبل از ارسال به کاربر ایمیل هدف، به intent ضمیمه شوند. شما می توانید از فیلدهای اضافه ی زیر برای ایمیل خود استفاده کنید.

  • EXTRA_BCC
    یک رشته ی [] آدرس های ایمیلی را نگه می دارد که باید نسخه ی کپی شده ی مستور باشند.
  • EXTRA_CC
    یک رشته ی [] آدرس های ایمیلی را نگه می دارد که باید نسخه ی کپی شده باشند.
  • EXTRA_EMAIL   
    یک رشته ی [] آدرس های ایمیلی را نگه می دارد که باید به آنها تحویل داده شود.
  • EXTRA_HTML_TEXT

    یک رشته ی ثابت که با Intent در ارتباط است، و با ACTION_SEND استفاده می شود تا به محض اینکه HTML متن را فرمت کرد برای EXTRA_TEXT یک گزینه فراهم کند.
  • EXTRA_SUBJECT

    یک رشته ی ثابت که خط موضوع مورد نظر را از یک متن نگه می دارد.
  • EXTRA_TEXT
    یک CharSequence ثابت که با Intent در ارتباط است، با ACTION_SEND مورد استفاده قرار می گیرد تا داده ی لیترال را برای ارسال فراهم کند.
  • EXTRA_TITLE
    یک تیتر گفتگوی CharSequence برای ارائه به یوزر می باشد زمانی که با یک ACTION_CHOOSER مورد استفاده قرار می گیرد.

در اینجا مثالی را می بینید که نشان می دهد چطور داده ی اضافه را به Intent خود اختصاص دهید.

 

emailIntent.putExtra(Intent.EXTRA_EMAIL  , new String[]{"Recipient"});
emailIntent.putExtra(Intent.EXTRA_SUBJECT, "subject");
emailIntent.putExtra(Intent.EXTRA_TEXT   , "Message Body");

مثال

مثال زیر به در عمل به شما نشان می دهد که چگونه از intent object برای آغاز کاربر ایمیل استفاده کنید تا یک ایمیل به گیرنه های ارائه شده ارسال کنید.

برای انجام این شما به یک دستگاه موبایل مجهز شده به آخرین نسخه ی Android OS نیاز دارید، در غیر اینصورت مجبورید با شبیه ساز کار کنید که ممکن است به درستی کار نکند. دوم اینکه شما به یک کاربر ایمیل مانند Gmail یا K9mail نصب شده روی دستگاه خود نیاز خواهید داشت.

  • شما از Eclipse IDE برای ایجاد یک برنامه ی اندروید استفاده خواهید کرد و آن را با عنوان SendEmailDemo تحت یک پکیج com.example.sendemaildemo نام گذاری می کنید. در هنگام ایجاد این برنامه مطمئن شوید که SDK و Compile را با آخرین ورژن اندروید SDK هدف قرار داده اید تا از API های سطوح بالاتر استفاده کنید.
  • فایل src/MainActivity.java را تغییر دهید و کد مورد نیاز را برای حفظ ارسال ایمیل به آن بیفزایید.
  • لی اوت فایل XML را به res/layout/activity_main.xml تغییر دهید، و هر گونه مولفه ی GUI را اگر لازم است به آن بیفزایید. من برای آغاز یک کاربر ایمیل (Email Client) در حال افزودن یک دکمه ی ساده میباشم.
  • res/values/strings.xml را تغییر دهید تا مقادیر ثابت مورد نیاز را تعریف کنید.
  • AndroidManifest.xml را به روشی که در زیر نشان داده شده تغییر دهید
  • برای شروع کار در شبیه ساز  اندروید برنامه را اجرا کنید و نتایج تغییرات انجام شده در برنامه را بررسی کنید.

در زیر محتوای تغییر یافته فایل اصلی فعالیت را مشاهده می کنید:

 

package com.PRG.Email;

import android.net.Uri;
import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.util.Log;
import android.view.Menu;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;

public class MainActivity extends Activity {
   @Override
   protected void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      setContentView(R.layout.activity_main);

      Button startBtn = (Button) findViewById(R.id.sendEmail);
      startBtn.setOnClickListener(new View.OnClickListener() {
         public void onClick(View view) {
            sendEmail();
         }
      });
   }
   protected void sendEmail() {
      Log.i("Send email", "");
      String[] TO = {""};
      String[] CC = {""};
      Intent emailIntent = new Intent(Intent.ACTION_SEND);
      
      emailIntent.setData(Uri.parse("mailto:"));
      emailIntent.setType("text/plain");
      emailIntent.putExtra(Intent.EXTRA_EMAIL, TO);
      emailIntent.putExtra(Intent.EXTRA_CC, CC);
      emailIntent.putExtra(Intent.EXTRA_SUBJECT, "Your subject");
      emailIntent.putExtra(Intent.EXTRA_TEXT, "Email message goes here");
      
      try {
         startActivity(Intent.createChooser(emailIntent, "Send mail..."));
         finish();
         Log.i("Finished sending email...", "");
      }
      catch (android.content.ActivityNotFoundException ex) {
         Toast.makeText(MainActivity.this, "There is no email client installed.", Toast.LENGTH_SHORT).show();
      }
   }
   
   @Override
   public boolean onCreateOptionsMenu(Menu menu) {
      // Inflate the menu; this adds items to the action bar if it is present.
      getMenuInflater().inflate(R.menu.main, menu);
      return true;
   }
}

در ادامه محتوای فایل res/layout/activity_main.xml را مشاهده می کنید:

 

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
   android:layout_width="fill_parent"
   android:layout_height="fill_parent"
   android:orientation="vertical" >
   
   <TextView
      android:id="@+id/textView1"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:text="Sending Mail Example"
      android:layout_alignParentTop="true"
      android:layout_centerHorizontal="true"
      android:textSize="30dp" />
      
   <TextView
      android:id="@+id/textView2"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:text="Tutorials point "
      android:textColor="#ff87ff09"
      android:textSize="30dp"
      android:layout_above="@+id/imageButton"
      android:layout_alignRight="@+id/imageButton"
      android:layout_alignEnd="@+id/imageButton" />
      
   <ImageButton
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:id="@+id/imageButton"
      android:src="@drawable/abc"
      android:layout_centerVertical="true"
      android:layout_centerHorizontal="true" />
      
   <Button
      android:id="@+id/sendEmail"
      android:layout_width="fill_parent"
      android:layout_height="wrap_content"
      android:text="@string/compose_email"/>
    
</LinearLayout>

در زیر محتوای res/values/strings.xml را برای تعریف دو ثابت جدید مشاهده می کنید :

 

<?xml version="1.0" encoding="utf-8"?>
<resources>
   <string name="app_name">Email</string>
   <string name="hello_world">Hello world!</string>
   <string name="action_settings">Settings</string>
   <string name="compose_email">Compose Email</string>
</resources>

در ادامه محتوای پیش فرض AndroidManifest.xml می باشد:

 

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
   package="com.example.Tutorialspoint"
   android:versionCode="1"
   android:versionName="1.0" >
   
   <application
      android:allowBackup="true"
      android:icon="@drawable/ic_launcher"
      android:label="@string/app_name"
      android:theme="@style/AppTheme" >
      
      <activity
         android:name="com.example.tutorialspoint.MainActivity"
         android:label="@string/app_name" >
         
         <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
         </intent-filter>
         
      </activity>
      
   </application>
</manifest>

اجازه بدهید برنامه ی SendEmailDemo را اجرا کنیم. فرض می کنیم که دستگاه موبایل خود را به کامپیوتر متصل کرده اید. برای اجرای برنامه از قسمت Eclipse، یکی از فایل های فعالیت برنامه را باز کرده و روی آیکن Run  از toolbar کلیک کنید.

اکنون از دکمه ی Compose Email استفاده کنید تا لیست همه ی کاربران نصب شده ی ایمیل را داشته باشید. از این لیست می توانید یکی از کاربران ایمیل را انتخاب کنید تا ایمیل خود را به آن ارسال کنید. قصد داریم برای ارسال از کاربر Gmail استفاده کنیم که دارای همه ی فیلدهای پیش فرض ارائه شده خواهد بود، همانطور که در زیر مشاهده می کنید. در اینجا From: ایمیل پیش فرضی خواهد بود که برای دستگاه اندروید خود ثبت کرده اید.

 

شما میتوانید هر حالت پیش فرضی رو تغییر بدهید و در نهایت از دکمه ی ارسال ایمیل برای ارسال کردن به دیگران استفاده کنید.

تمامی محصولات و خدمات این وبسایت، حسب مورد دارای مجوزهای لازم از مراجع مربوطه می‌باشند و فعالیت‌های این سایت تابع قوانین و مقررات جمهوری اسلامی ایران است.
logo-samandehi مجوز نشر دیجیتال از وزرات فرهنگ و ارشاد اسلامی پرداخت آنلاین -  بانک ملت معرفی بیاموز در شبکه سه