ارسال ایمیل در برنامه نویسی اندروید

4 سال پیش

ارسال ایمیل در برنامه نویسی اندروید

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

 

برای ارسال ایمیل از برنامه خود ، لازم نیست که از ابتدا یک سرویس گیرنده ایمیل را پیاده سازی کنید ، اما می توانید از یک برنامه موجود مانند برنامه ایمیل پیش فرض ارائه شده از مانند:mail ، Outlook ، K-9 Mail و غیره استفاده کنید. برای این منظور، ما باید با استفاده از یک Intent ضمنی همراه با عملکرد و داده های مناسب، یک Activity بنویسیم که یک سرویس گیرنده ایمیل را راه اندازی کند. در این مثال، ما می خواهیم با استفاده از یک شی Intent که سرویس گیرنده های ایمیل موجود را راه اندازی می کند، از برنامه خود ایمیل ارسال کنیم.

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

Intent Object – اقدام برای ارسال ایمیل در اندروید

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

Intent emailIntent = new Intent(Intent.ACTION_SEND);

Intent Object – داده / نوع برای ارسال ایمیل

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

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

Intent Object – فیلدهای اضافی برای ارسال ایمیل

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

EXTRA_BCC

یک [ ]String که آدرس های ایمیلی را نگه می دارد که باید نسخه ی کپی شده ی پنهان باشند.

EXTRA_CC

یک [ ]String که آدرس های ایمیلی را نگه می دارد که باید نسخه ی کپی شده باشند.

EXTRA_EMAIL

یک [ ]String آدرس های ایمیلی را نگه می دارد که باید به آن ها تحویل داده شود.

EXTRA_HTML_TEXT

یک رشته ثابت است که با Intent مرتبط است، با ACTION_SEND استفاده می شود تا گزینه EXTRA_TEXT را به عنوان متن قالب بندی شده HTML ارائه دهد.

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 برای راه اندازی سرویس گیرنده ایمیل برای ارسال ایمیل به گیرنده های داده شده را به شما نشان می دهد.

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

۱ شما برای ایجاد یک برنامه Android از Android studio استفاده خواهید کرد و نام آن را به عنوان Tutorialspoint در یک بسته com.example.tutorialspoint قرار دهید.
۲ پرونده src / MainActivity.java را تغییر دهید و کد لازم را برای محافظت از ارسال ایمیل اضافه کنید.
۳ طرح XML را تغییر دهید فایل res / layout / activity_main.xml در صورت لزوم هر جز GUI اضافه کنید. یک دکمه ساده برای راه اندازی Email Client اضافه می کنیم.
۴ res / Value / strings.xml را تغییر دهید تا مقادیر ثابت مورد نیاز تعریف شود
۵ AndroidManifest.xml را مطابق شکل زیر تغییر دهید
۶ برنامه را اجرا کنید تا شبیه ساز اندروید را راه اندازی کرده و نتیجه تغییرات انجام شده در برنامه را تأیید کنید.

در زیر محتوای پرونده فعالیت اصلی تغییر یافته src / com.example.Tutorialspoint / MainActivity.java است.

package com.example.tutorialspoint;

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();
      }
   }
}

در زیر محتوای پرونده 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">Tutorialspoint</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" >
   
   <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>

بیایید برنامه Tutorialspoint شما را اجرا کنیم. من تصور می کنم شما AVD خود را هنگام راه اندازی محیط ایجاد کرده اید. برای اجرای برنامه از Android studio، یکی از پرونده های فعالیت پروژه خود را باز کنید و از نوار ابزار روی Android StudioRun Icon کلیک کنید. Android Studio برنامه را روی AVD شما نصب کرده و شروع به کار می کند و اگر با تنظیمات و برنامه هایتان همه چیز خوب باشد، زیر پنجره شبیه ساز نمایش داده می شود.

اکنون از لیست نوشتن ایمیل برای نوشتن لیست کلاینت های ایمیل نصب شده استفاده کنید. از لیست می توانید یکی از سرویس گیرنده های ایمیل را برای ارسال ایمیل خود انتخاب کنید. من می خواهم از کلاینت Gmail برای ارسال ایمیل خود استفاده کنم که تمام قسمتهای پیش فرض ارائه شده را مانند شکل زیر در دسترس خواهد داشت.

شما می توانید هر یک از قسمتهای پیش فرض داده شده را اصلاح کرده و در نهایت از دکمه send email  برای ارسال ایمیل خود به گیرندگان ذکر شده استفاده کنید.

منبع.

لیست جلسات قبل آموزش برنامه نویسی اندروید

  1. نگاهی کلی به برنامه نویسی اندروید
  2. تنظیمات محیط  در برنامه نویسی اندروید
  3. معماری برنامه نویسی اندروید
  4. اجزای برنامه در برنامه نویسی اندروید
  5. Hello World در برنامه نویسی اندروید
  6. سازماندهی و دسترسی به منابع در برنامه نویسی اندروید
  7. فعالیت در برنامه نویسی اندروید
  8. سرویس در برنامه نویسی اندروید
  9. گیرنده های پخش در برنامه نویسی اندروید
  10. ارائه دهنده محتوا در برنامه نویسی اندروید
  11. قطعات در برنامه نویسی اندروید
  12. Intent و فیلتر در برنامه نویسی اندروید
  13. طرح بندی رابط کاربری در برنامه نویسی اندروید
  14. کنترل های رابط کاربری در برنامه نویسی اندروید
  15. مدیریت رویدادها در برنامه نویسی اندروید
  16. استایل و تم ها در برنامه نویسی اندروید
  17. اجزای سفارشی در برنامه نویسی اندروید
  18. کشیدن و رها کردن در برنامه نویسی اندروید
  19. نوتیفیکیشن ها در برنامه نویسی اندروید
  20. سرویس های مبتنی بر مکان در برنامه نویسی اندروید
0
برچسب ها :
نویسنده مطلب erfan molaei

دیدگاه شما

بدون دیدگاه