با عرض سلام و وقت بخیر خدمت کاربران سایت پی وی لرن . و کاربرانی که دوره کامل آموزش برنامه نویسی اندروید را دنبال می کنند. Email (پست الکترونیک ) پیامهایی است که از طریق یک وسیله الکترونیکی از طریق یک کاربر به یک یا چند گیرنده از طریق شبکه توزیع می شود. ایمیل ارتباط بین کاربران را از نقاط مختلف دنیا که به شبکه اینترنت دسترسی داشته باشند را فراهم می کند و برنامه های بسیاری از جمله انواع برنامه های اندروید از این قابلیت برای برقراری ارتباط بین کاربران مختلف استفاده می کنند، از این رو مباحث این بخش را به آشنایی با ارسال ایمیل در اندروید اختصاص دادیم.
در ادامه ی این مبحث ما شما را با آبجکت های ارسال ایمیل در اندروید و یک مثال ساده ی ارسال ایمیل آشنا خواهیم کرد.
برای ارسال ایمیل در برنامه ی اندرویدی خود نیازی به راه اندازی سرویس ایمیل ندارید چراکه می توانید از سرویس های زیر استفاده کنید:
برای این منظور ابتدا نیاز به نوشتن یک Activity دارید که Email سمت کاربر را راه اندازی می کند.
با استفاده از implicit Intent در این آموزش یک قابلیت ارسال ایمیل را با استفاده از یک برنامه و با آبجکت Intent ایجاد می کنیم.
در این قسمت ما به شما استفاده از عمل ACTION_SEND را برای راه اندازی سرویس ایمیل خواهیم آموخت.
ساختار ساده ی ایجاد یک عمل ACTION_SEND :
1 | Intent emailIntent = new Intent(Intent.ACTION_SEND); |
برای ارسال ایمیل نیاز به مشخص کردن mailto به عنوان URI با استفاده از متد setData() و نوع داده که به text/plain با استفاده از setType() تنظیم می شود داریم:
1 2 | emailIntent.setData(Uri.parse("mailto:")); emailIntent.setType("text/plain"); |
آندروید دارای پشتیبانی داخلی برای اضافه کردن زمینه های TO، SUBJECT، CC، TEXT و… می باشد.
با این قابلیت فیلدها را می توان به intent قبل از ارسال intent به ایمیل ضمیمه کرد.
شما می توانید از این فیلدهای اضافی در ایمیل خود استفاده کنید:
ردیف | افزودنه و توضیحات |
---|---|
۱ | EXTRA_BCC یک String[] که آدرس های e-mail که باید کپی شوند را نگه می دارد. |
۲ | EXTRA_CC یک String[] که آدرس های e-mail که باید کپی شوند را نگه می دارد. |
۳ | EXTRA_EMAIL یک String[] که آدرس های e-mail که باید تحویل داده شوند. |
۴ | EXTRA_HTML_TEXT یک رشته ثابت که با هدف در ارتباط است، با ACTION_SEND مورد استفاده قرار می گیرد. این افزونه EXTRA_TEXT را در قالب متن html تبدیل می کند.
|
۵ | EXTRA_SUBJECT یک رشته ی ثابت که حاوی متن موضوع ایمیل است. |
۶ | EXTRA_TEXT برای ارسال داده های لفظی مورد استفاده قرار می گیرد.
|
۷ | EXTRA_TITLE عنوان گفتگوی CharSequence برای ارائه به کاربر. |
در اینجا یک مثال به شما نشان میدهد که چگونه اطلاعات اضافی را به intent خود اختصاص دهید:
1 2 3 | emailIntent.putExtra(Intent.EXTRA_EMAIL , new String[]{"Recipient"}); emailIntent.putExtra(Intent.EXTRA_SUBJECT, "subject"); emailIntent.putExtra(Intent.EXTRA_TEXT , "Message Body"); |
خروجی کد فوق چیزی مشابه تصویر زیر خواهد بود:
مثال زیر چگونگی استفاده از شیء Intent را برای ارسال ایمیل به گیرندگان را نشان می دهد:
نکته- ۱:
برای آزمایش ایمیل با این مثال، شما نیاز به دستگاه واقعی مجهز به آخرین سیستم عامل آندروید دارید، چراکه ممکن است شبیه ساز اندروید به خوبی کار نکند.
نکته- ۲:
شما نیاز به یک برنامه ی سرویس ایمیل مانند GMail یا K9mail که روی دستگاه شما نصب شده باشد دارید.
مراحل | توضیحات |
---|---|
۱ | مراحل ایجاد برنامه در اندروید استدیو را طبق بخش های قبلی دنبال کرده و نام پکیج را com.pvlearn.pvlearn.myapplication قرار بدهید. |
۲ | به محتوای فایل src / MainActivity.java کدهای لازم جهت ارسال ایمیل را اضافه کنید. |
۳ | به فایل طراحی res / layout / activity_main.xml یه دکمه برای ارسال ایمیل توسط کاربر اضافه کنید. |
۴ | محتوای res / values / strings.xml را برای تغییر دادن مقادیر ثابت ویرایش کنید. |
۵ | محتوای فایل AndroidManifest.xml را همانطور که در ادامه اشاره شده تغییر دهید. |
۶ | برنامه را اجرا کنید تا شبیه ساز اندروید نتیجه را نمایش دهد. |
محتوای فایل main activity را که در مسیر src/com.example.Tutorialspoint/MainActivity.java قرار دارد به صورت زیر تغییر می دهیم:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 | package com.example.Pvlearn; 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 بصورت زیر خواهد بود:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 | <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="Pvlearn " 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 دو ثابت رشته ای به صورت زیر اضافه می کنیم:
1 2 3 4 5 | <?xml version="1.0" encoding="utf-8"?> <resources> <string name="app_name">Tutorialspoint</string> <string name="compose_email">Compose Email</string> </resources> |
محتوای پیش فرض فایل AndroidManifest.xml به صورت زیر است:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | <?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> |
برای اجرای برنامه ی اندرویدی خود یکی از فایل های activity در برنامه ی خود کلیک کنید.
سپس روی نماد (Run) از نوار ابزار برای شروع اجرای برنامه کلیک کنید.
اگر همه چیز بخوبی پیش برود شبیه ساز اندروید پنجره ی زیر را نمایش خواهد داد:
حالا از دکمه ی Compose Email برای لیست کردن تمام کاربران ایمیل نصب شده استفاده کنید.
سپس از لیست ظاهر شده می توانید یک کاربر را برای ارسال ایمیل انتخاب کنید.
ما از سرویس Gmail برای اینکار استفاده می کنیم که تمام فیلدهای پیش فرض را بصورت زیر ارائه می دهد:
شما می توانید هر یک فیلدهای پیش فرض را به صورت زیر تغییر داده و در نهایت از دکمه ی send email برای ارسال ایمیل استفاده کنید.
اندروید قابلیت دسترسی و استفاده از سرویس های ایمیل را در برنامه هایی که شما ایجاد می کنید را ارائه می دهد، با استفاده از این سرویس برقراری ارتباط به کاربران به سادگی ممکن می شود، از این رو ما مباحث این آموزش را به آشنایی با سرویس ارسال ایمیل در اندروید اختصاص دادیم.