دوره‌ای که می‌تونه مسیر شغلیت رو عوض کنه! دوره‌ای که می‌تونه مسیر شغلیت رو عوض کنه!
🎯 ثبت نام

آموزش ارسال ایمیل در اندروید : Android Sending Email

 

clip_image001

دوره آموزش برنامه نویسی اندروید

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

 



 

آموزش ارسال ایمیل در اندروید   : Android Sending Email

شما در مورد Android Intent  فراگرفته اید که آبجکتی است که هدفی را دنبال می کند، به عنوان مثال پیامی از یک مولفه به مولفه دیگر در داخل و یا خارج از برنامه.

لازم نیست کاربر ایمیل خود را از پیش نویس فراتر ببرید زیرا مانند Gmail و K9mail در دسترس می باشند. ولی نیاز خواهید داشت که ایمیل را از برنامه ی اندروید خود ارسال کنید، جایی که مجبور خواهید بود فعالیتی را ثبت کنید که شروع فعالیت یک کاربر ایمیل را نیاز دارد و با استفاده از دستگاه اندروید شما ایمیل ارسال می کند. به این منظور فعالیت شما همراه با بارگذاری داده های مناسب، یک ACTION_SEND به برطرف کننده ی Android Intent  ارسال می کند. انتخاب کننده ی تعیین شده، اینترفیس مناسب را برای یوزر ارائه می دهد تا انتخاب کند چگونه داده ی ایمیل شما را ارسال کند.

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

Intent Object_ عمل ارسال ایمیل

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

I Intent emailIntent = new Intent(Intent.ACTION_SEND);

Intent Object_ نوع داده برای ارسال ایمیل

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

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

  

Intent Object_ ضمیمه برای ارسال ایمیل

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

S.N.  

Extra Data & Description  

1  

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

2  

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

3  

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

4  

EXTRA_HTML_TEXT

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

5  

EXTRA_SUBJECT

یک رشته ی ثابت که خط موضوع مورد نظر را از یک متن نگه می دارد.

6  

EXTRA_TEXT
یک CharSequence ثابت که با Intent در ارتباط است، با ACTION_SEND مورد استفاده قرار می گیرد تا داده ی لیترال را برای ارسال فراهم کند.

7  

EXTRA_TITLE
یک تیتر گفتگوی CharSequence برای ارائه به یوزر می باشد زمانی که با یک ACTION_CHOOSER مورد استفاده قرار می گیرد.

 

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

emailIntent.putExtra(Intent.EXTRA_EMAIL  , new String[]{"recipient@example.com"});
        emailIntent.putExtra(Intent.EXTRA_SUBJECT,
"subject of email"
);
        emailIntent.putExtra(Intent.EXTRA_TEXT   ,
"body of email"
);

مثال

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

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

مراحل   

توضیحات   

1 

شما از Eclipse IDE برای ایجاد یک برنامه ی اندروید استفاده خواهید کرد و آن را با عنوان SendEmailDemo تحت یک پکیج com.example.sendemaildemo نام گذاری می کنید. در هنگام ایجاد این برنامه مطمئن شوید که SDK و Compile را با آخرین ورژن اندروید SDK هدف قرار داده اید تا از API های سطوح بالاتر استفاده کنید.

2 

فایل src/MainActivity.java را تغییر دهید و کد مورد نیاز را برای حفظ ارسال ایمیل به آن بیفزایید.

3 

لی اوت فایل XML را به res/layout/activity_main.xml تغییر دهید، و هر گونه مولفه ی GUI را اگر لازم است به آن بیفزایید. من برای آغاز یک کاربر ایمیل (Email Client) در حال افزودن یک دکمه ی ساده میباشم.

4 

res/values/strings.xml را تغییر دهید تا مقادیر ثابت مورد نیاز را تعریف کنید.

5 

AndroidManifest.xml را به روشی که در زیر نشان داده شده تغییر دهید.

6 

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

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

src/com.example.sendemaildemo/MainActivity.java.

package com.example.sendemaildemo;
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 = {
"amrood.admin@gmail.com"
};
                String[] CC = {
"mcmohd@gmail.com"
};
                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">

            <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">SendEmailDemo</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.sendemaildemo"

android:versioncode="1"

android:versionname="1.0">

<uses-sdk android:minsdkversion="8"

android:targetsdkversion="17" />

<application android:allowbackup="true"

android:icon="@drawable/ic_launcher"

android:label="@string/app_name"

android:theme="@style/AppTheme">

<activity android:name="com.example.sendemaildemo.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 کلیک کنید. قبل ازشروع برنامه، Eclipse پنجره ی زیر را نمایش خواهد داد تا یک گزینه را انتخاب کنید- جایی که می خواهید برنامه ی اندروید خود را اجرا کنید.

 

  موبایل خود را به عنوان یک گزینه انتخاب کرده و سپس آن را چک کنید که صفحه ی زیر را نمایش می دهد.

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

 

  در نظر داشته باشید که می توانید هرکدام از فیلدهای پیش فرض ارائه شده را تغییر داده و در نهایت از دکمه ی send email استفاده کنید ( که با مثلث قرمز رنگ مشخص شده) تا ایمیل خود را به گیرنده های ذکر شده ارسال کنید.

1394/07/27 17014 2649
رمز عبور : tahlildadeh.com یا www.tahlildadeh.com
نظرات شما

نظرات خود را ثبت کنید...