درخواست های ارتباط
جستجو
لیست دوستان من
صندوق پیام
همه را دیدم
  • در حال دریافت لیست پیام ها
صندوق پیام
رویدادها
همه را دیدم
  • در حال دریافت لیست رویدادها
همه رویدادهای من
دوره های مرتبط
دوره آموزشی طراحی رابط کاربری با JavaFX
مدرس: hharddy
این دوره را در 13 قسط خریداری کنید
دوره تخصصی آموزش متن کاوی با ابزار NLTK
مدرس: taghandiki
این دوره را در 11 قسط خریداری کنید
دوره آموزشی مقدماتی برنامه نویسی به زبان سی شارپ
مدرس: حسین احمدی
این دوره را در 17 قسط خریداری کنید
دوره آموزشی برنامه نویسی حرفه ای پایتون به زبان ساده
مدرس: حسین احمدی
این دوره را در 23 قسط خریداری کنید
دوره آموزشی اسکریپت نویسی Batch یا Batch Scripting در ویندوز به زبان ساده
مدرس: حسین احمدی
این دوره را در 11 قسط خریداری کنید
دوره آموزشی ساخت ربات تلگرام
مدرس: taghandiki
این دوره را در 8 قسط خریداری کنید
دوره آموزشی Exploit نویسی به زبان Perl
مدرس: dr-iman
این دوره را در 7 قسط خریداری کنید
دوره آموزشی پردازش متن با زبان برنامه نویسی پایتون
مدرس: taghandiki
این دوره را در 20 قسط خریداری کنید
ساخت و مدیریت ربات تلگرام از صفر با زبان سی شارپ
مدرس: مهدی عادلی
این دوره را در 2 قسط خریداری کنید
دوره آموزشی برنامه نویسی پیشرفته زبان سی شارپ
مدرس: حسین احمدی
این دوره را در 78 قسط خریداری کنید

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

0 نظرات
196 بازدیدها
سلام ITPRO های عزیز. در این مطلب در مورد کار با intent ها صحبت کردیم و در این مطلب گفتیم که برای تماس گرفتن به چه شکل از intentهای ضمنی استفاده می کنیم. اما یکی دیگر از استفاده های intentهای ضمنی ارسال ایمیل است. در این مطلب می خواهیم در این مورد صحبت کنیم. این امکان بسیار خوبی است زیرا که وقتی که شما می خواهید یک ایمیل ارسال کنید دیگر نیازی ندارید که خودتان یک کلاس برای ارسال ایمیل درست کنید و فقط با استفاده از اینتنت ها ایمیل مورد نظر را ارسال می کنید.

ارسال ایمیل با Intent


برای ارسال ایمیل از اکشن ACTIONSEND استفاده می شود. همان طور که در مطلب قبلی گفته شد از این اکشن در ارسال فایل ها نیز استفاده می شود ولی در این بخش ما فقط بر روی ایمیل تمرکز داریم. برای این که مشخص شود که اکشن ACTIONSEND برای ارسال ایمیل است باید مقادیر Data و Type آن را مقداردهی نماییم و سایر بخش های یک ایمیل را نیز در قالب extra به آن پاس دهیم. ما برای ساخت intent از کد زیر استفاه می کنیم.
Intent emailIntent = new Intent(Intent.ACTION_SEND);
برای این که مشخص کنیم که intent مربوط به ایمیل است باید در قسمت data و type آن مقادیر زیر را بنویسیم.
emailIntent.setData(Uri.parse("mailto:"));
emailIntent.setType("text/plain");

بعد از این تنظیمات باید مشخصات ایمیل را تعیین کنیم که متن ایمیل چه چیزی باشد به چه کسی ارسال شود و موضوع ایمیل چه چیزی باشد و مقادیری از این قبیل. گفتیم که این بخش ها را با استفاده از ویژگی extra مربوط به intent انجام می دهیم. خوشبختانه اندروید یک سری ثابت های برای این کار در نظر گرفته که در ادامه به این ثابت ها می پردازیم. دقت کنید که این ثابت ها در قسمت key مربوط به extra قرار میگیرند. دوستان دقت داشته باشند که بعد از کلمه EXTRA یک کاراکتر underline قرار دارد
  1. EXTRA_BCC در این بخش یک آرایه یا مجموعه از ایمیل ها دریافت می شود و به همان شکلی که ایمیل برای یک نفر ارسال می شود و ممکن است برای چند نفر bcc یا blink carbon copy شود یعنی برای آن ها هم ارسال شود در این قسمت هم چند ایمیل گرفته می شود که علاوه بر نفر اصلی به آنها هم ایمیل ارسال خواهد شد. (مانند این است که ایمیل هایی در قسمت BCC ایمیل خودتان بنویسید)
  2. EXTRA_CC همانند قسمت قبل است با این تفاوت که گیرنده اصلی ایمیل و سایر گیرنده ها از این که ایمیل برای چه کسانی هم ارسال شده است مطلع می شود (مانند این است که ایمیل هایی در قسمت CC ایمیل خودتان بنویسید)
  3. EXTRA_EMAIL این بخش ، قسمت اصلی دریافت کنندگان است. یعنی برای کسانی که شما می خواهیم ایمیل بفرستید این قسمت را پر می کنید. دقت کنید که گیرنده اصلی باید حد اقل یک ایمیل باشد ولی می تواند یک مجموعه از ایمیل ها هم باشد.
  4. EXTRAHTMLTEXT متن ایمیل است که با قالب html است و به کاربر شکل متنی قالب بندی شده آن نشان داده می شود و نه کد html.
  5. EXTRA_SUBJECT در این بخش موضوع ایمیل وارد می شود.
  6. EXTRA_TEXT این بخش مربوط به متن ایمیل می باشد که برخلاف EXTRAHTMLTEXT که html می گرفت این قسمت متن ساده را دریافت می کند.
برای مثال از extra های بالا به کد های زیر دقت کنید.
emailIntent.putExtra(Intent.EXTRA_EMAIL  , new String[]{"hello@yahoo.com"});
emailIntent.putExtra(Intent.EXTRA_SUBJECT, "subject");
emailIntent.putExtra(Intent.EXTRA_TEXT   , "Hello from Itpro website");

در متد زیر شما یک مثال از مطالبی را که گفتیم را به صورت کد می بینید
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();
      }
   }


و در نهایت برای این که ایمیل ارسال شود شما باید متد startActivity را فراخوانی نمایید. هنگام فراخوانی این متد اگر بیش از یک برنام ایمیل در دستگاه شما نصب شده باشد و برای این که از شما سوالی پرسیده شود که می خواهید با کدام برنامه ایمیل را ارسال کنید از متد createChooser استفاده می کنیم. در این صورت یک لیست به شما نشان داده شده و شما می توانید انتخاب کنید.ITPRO باشید.

نویسنده: مهدی عادلی فر
منبع: Itpro
هرگونه نشر و کپی برداری بدون ذکر منبع و نام نویسنده دارای اشکال اخلاقی می باشد.


برچسب ها
مطالب مرتبط

در حال دریافت اطلاعات

نظرات
هیچ نظری ارسال نشده است

    برای ارسال نظر ابتدا به سایت وارد شوید

    arrow