ارسال ایمیل در اندروید
پنجشنبه 15 بهمن 1394در این مقاله قصد داریم یک محتوای متنی را با استفاده از Intent.ACTION_SEND به یک آدرس ایمیل ارسال نماییم، با استفاده از نرم افزار های ایمیل که موجود است می توانید ایمیل مورد نظر خود را به آدرسی که وارد می نمایید ارسال کنید، و اگر سیستم اندروید شما نرم افزاری نداشته باشد به شما پیغام نصب نرم افزار را می دهد.
داخل لایه ی activity خود از textview و edittext برای وارد کردن اطلاعات استفاده می نمایید:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/linearLayout1" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" android:padding="5dp" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="مقصد" android:textAppearance="?android:attr/textAppearanceLarge" android:layout_gravity="right"/> <EditText android:id="@+id/toEmail" android:layout_width="fill_parent" android:layout_height="wrap_content" android:hint="لطفا ایمیل مقصد را وارد نمایید" android:layout_gravity="right" android:gravity="right" > </EditText> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="موضوع" android:textAppearance="?android:attr/textAppearanceLarge" android:layout_gravity="right"/> <EditText android:id="@+id/subject" android:layout_width="fill_parent" android:layout_height="wrap_content" android:gravity="right" android:hint="لطفا موضوع را وارد نمایید"> </EditText> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="پیام" android:textAppearance="?android:attr/textAppearanceLarge" android:gravity="right" android:layout_gravity="right"/> <EditText android:id="@+id/emailBody" android:layout_width="fill_parent" android:layout_height="wrap_content" android:gravity="top|right" android:inputType="textMultiLine" android:lines="5" android:layout_gravity="right" android:hint="لطفا متن پیام را وارد نمایید"/> </LinearLayout>
برای ارسال ایمیل و پاک کردن متن های نوشته شده می خواهیم از یک منو استفاده کنیم، برای همین یک پوشه به نام منو ایجاد نمایید و داخل آن یک فایل xml ایجاد نمایید و آیتم های منو را داخل آن قرار دهید:
<menu xmlns:android="http://schemas.android.com/apk/res/android" > <item android:id="@+id/menu_clear" android:icon="@android:drawable/ic_menu_close_clear_cancel" android:showAsAction="ifRoom|withText" android:title="Clear"/> <item android:id="@+id/menu_send" android:icon="@android:drawable/ic_menu_send" android:showAsAction="ifRoom|withText" android:title="Send"/> </menu>
حالا باید کلاس جاوا را برای ان تعریف نمایید به صورت زیر:
import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.view.Menu; import android.view.MenuItem; import android.widget.EditText; public class MyActivity extends Activity { private EditText toEmail = null; private EditText emailSubject = null; private EditText emailBody = null; /** * Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); toEmail = (EditText) findViewById(R.id.toEmail); emailSubject = (EditText) findViewById(R.id.subject); emailBody = (EditText) findViewById(R.id.emailBody); } /** * صدا زدن منو برای ارسال پیام * * */ @Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.main_menu, menu); return true; } @Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case R.id.menu_clear: toEmail.setText(""); emailBody.setText(""); emailSubject.setText(""); break; case R.id.menu_send: String to = toEmail.getText().toString(); String subject = emailSubject.getText().toString(); String message = emailBody.getText().toString(); Intent email = new Intent(Intent.ACTION_SEND); email.putExtra(Intent.EXTRA_EMAIL, new String[] { to }); email.putExtra(Intent.EXTRA_SUBJECT, subject); email.putExtra(Intent.EXTRA_TEXT, message); // need this to prompts email client only email.setType("message/rfc822"); startActivity(Intent.createChooser(email, "Choose an Email client")); break; } return true; } }
برای ارسال ایمیل مورد نظر از دستور switch استفاده شده است، این دستور از دو case استفاده شده است یک case برای پاک کردن edittext استفاده می شود، و case دوم برای گرفتن اطلاعات و ارسال به intent ارسال ایمیل و با زدن آن ایمیل مورد نظر با استفاده از نرم افزار نصب شده روی سیتم اندروید خود ارسال می شود.
خروجی به صورت زیر است:
- Android
- 1k بازدید
- 7 تشکر