Related Topics

What is Mobile Computing in Hindi?

Brief history of mobile technology in Hindi

Mobile Phone Generations in Hindi

The Mobile Ecosystem in Hindi

Types of Mobile Applications in Hindi

Mobile Information Architecture in Hindi

Android Versions in Hindi

Features of Android in Hindi

Android Architecture in Hindi

Installing Android SDK Tools in Hindi

Configuring Android in Eclipse IDE in Hindi

Android Development Tools (ADT) in Hindi

Creating Android Virtual Devices (AVD) in Hindi

Creating First Android Application in Hindi

Anatomy of Android Application in Hindi

Deploying Android App on USB Connected Android Device in Hindi

Android Application Components in Hindi

Android Activity Life Cycle in Hindi

Android Activities in Hindi

Exploring Intent Objects in Hindi

Linking Activities Using Intents in Hindi

Android Fragment Lifecycle in Hindi

Android UI Layouts in Hindi

Adapting to Display Orientation in Android in Hindi

Action Bar in Android in Hindi

Android Alarm Manager in Hindi

Displaying Analog & Digital Clocks in Android in Hindi

Event Handling in Android in Hindi

Android Menus in Hindi

Data Storage Options in Android in Hindi

External Storage in Android in Hindi

Content Providers in Android in Hindi

Views in Android in Hindi

Button in Android in Hindi

Toast in Android in Hindi

ToggleButton in Android in Hindi

CheckBox in Android in Hindi

RadioButton in Android in Hindi

Spinner in Android in Hindi

WebView in Android in Hindi

EditText in Android in Hindi

DatePicker in Android in Hindi

TimePicker in Android in Hindi

ListView in Android in Hindi

ProgressBar in Android in Hindi

Handling UI Events in Android in Hindi

ListFragment in Android in Hindi

DialogFragment in Android in Hindi

Context in Android in Hindi

Popup in Android in Hindi

ImageView in Android in Hindi

ImageSwitcher in Android in Hindi

AlertDialog in Android in Hindi

AlarmManager in Android in Hindi

SMS in Android in Hindi

MediaPlayer in Android in Hindi

Using Camera in Android in Hindi

Video Recording in Android in Hindi

Telephony Manager in Android in Hindi

Android SQLite Database in Hindi

SQLite database operations in Hindi

Publishing Android Applications in Hindi

Deploying APK Files in Android in Hindi

Related Subjects

E-mail in Android in Hindi

RGPV University / DIPLOMA_CSE / MOBILE COMPUTING

Sending E-mails Programmatically in Android in Hindi

SEO Optimised Table of Contents for Sending E-mails in Android in Hindi

E-mail in Android in Hindi

Introduction to E-mail Functionality in Android

  • Android में E-mail भेजना एक बहुत ही महत्वपूर्ण functionality है, जिसका उपयोग users को notifications, feedback, reports या किसी भी प्रकार की जानकारी भेजने के लिए किया जाता है।
  • Android applications में E-mail भेजने के लिए दो मुख्य तरीके होते हैं:
    • Intent का उपयोग करके
    • Programmatically SMTP (Simple Mail Transfer Protocol) के माध्यम से
  • Intent method सरल होता है और सीधे Gmail या अन्य mail apps का उपयोग करता है।
  • SMTP method तब उपयोग किया जाता है जब आपको बिना user interaction के background से E-mail भेजना हो।

Send E-mail using Intent in Android

  • Intent एक Android component होता है जिससे आप किसी दूसरे app (जैसे Gmail) को invoke कर सकते हैं।
  • यह तरीका user interaction पर आधारित होता है, यानी user को manually E-mail भेजने के लिए confirm करना पड़ता है।
Intent emailIntent = new Intent(Intent.ACTION_SEND);/n emailIntent.setType("message/rfc822");/n emailIntent.putExtra(Intent.EXTRA_EMAIL, new String[]{"receiver@example.com"});/n emailIntent.putExtra(Intent.EXTRA_SUBJECT, "Subject of email");/n emailIntent.putExtra(Intent.EXTRA_TEXT, "Body of the email");/n try {/n startActivity(Intent.createChooser(emailIntent, "Send email using:"));/n } catch (android.content.ActivityNotFoundException ex) {/n Toast.makeText(context, "No email clients installed.", Toast.LENGTH_SHORT).show();/n }
  • ऊपर के कोड में, आप Intent की मदद से किसी भी installed mail client के जरिए E-mail भेज सकते हैं।

Sending E-mails Programmatically in Android in Hindi

Sending E-mails without User Interaction using JavaMail API

  • जब आपको बिना user की जानकारी के app के अंदर से ही programmatically E-mail भेजना हो, तो JavaMail API का उपयोग किया जाता है।
  • इसके लिए आपको external dependency जोड़नी होती है, जैसे कि JavaMail या Apache Commons Email।

JavaMail API को Gradle में जोड़ना

dependencies {/n implementation 'com.sun.mail:android-mail:1.6.7'/n implementation 'com.sun.mail:android-activation:1.6.7'/n }

Internet Permission in AndroidManifest.xml

<uses-permission android:name="android.permission.INTERNET"/>

JavaMailSender क्लास बनाना

public class JavaMailAPI extends AsyncTask<Void, Void, Void> {/n private Context context;/n private Session session;/n/n private String email;/n private String subject;/n private String message;/n/n public JavaMailAPI(Context context, String email, String subject, String message) {/n this.context = context;/n this.email = email;/n this.subject = subject;/n this.message = message;/n }/n/n @Override/n protected Void doInBackground(Void... voids) {/n Properties props = new Properties();/n props.put("mail.smtp.host", "smtp.gmail.com");/n props.put("mail.smtp.port", "587");/n props.put("mail.smtp.auth", "true");/n props.put("mail.smtp.starttls.enable", "true");/n/n session = Session.getInstance(props, new Authenticator() {/n @Override/n protected PasswordAuthentication getPasswordAuthentication() {/n return new PasswordAuthentication("your_email@gmail.com", "your_app_password");/n }/n });/n/n try {/n Message mimeMessage = new MimeMessage(session);/n mimeMessage.setFrom(new InternetAddress("your_email@gmail.com"));/n mimeMessage.setRecipients(Message.RecipientType.TO, InternetAddress.parse(email));/n mimeMessage.setSubject(subject);/n mimeMessage.setText(message);/n/n Transport.send(mimeMessage);/n } catch (MessagingException e) {/n e.printStackTrace();/n }/n return null;/n }/n }
  • यह class AsyncTask के अंदर email भेजने का काम करती है ताकि यह background में execute हो और UI block न हो।
  • यहाँ पर आपको अपना Gmail का email और app-specific password डालना होता है (normal password काम नहीं करेगा)।

Gmail App Password कैसे प्राप्त करें?

  • अपने Gmail अकाउंट में login करें।
  • Google Account settings में जाएं और "Security" टैब पर क्लिक करें।
  • "2-Step Verification" enable करें।
  • इसके बाद "App Passwords" में जाकर Android App के लिए एक नया password generate करें।
  • इसी password का उपयोग ऊपर दिए गए JavaMail API कोड में करें।

JavaMailSender को Call करना

JavaMailAPI javaMailAPI = new JavaMailAPI(this, "to@example.com", "Test Subject", "This is a test message");/n javaMailAPI.execute();
  • उपरोक्त कोड से आप programmatically किसी भी user को email भेज सकते हैं बिना उसके confirmation के।

Comparison Table: Intent vs Programmatic Email

Feature Using Intent Using JavaMail API
User Interaction Required Not Required
Setup Difficulty Easy Moderate to Hard
Security High (User controlled) Depends on Implementation
Customization Limited Full control

FAQs

Android में email भेजने के लिए आप Intent का उपयोग कर सकते हैं। यह user को पहले से installed email apps के माध्यम से email भेजने की सुविधा देता है। इसमें user को email manually भेजने की अनुमति देनी होती है। उदाहरण के लिए: Intent.ACTION_SEND का प्रयोग करके Gmail या अन्य apps से ईमेल भेजा जाता है।
JavaMail API एक Java आधारित library है जिसका उपयोग Android में programmatically email भेजने के लिए किया जाता है। यह user interaction के बिना background से emails भेजने की सुविधा देता है और इसमें SMTP protocol का उपयोग होता है।
हाँ, यदि आप JavaMail API के माध्यम से programmatically email भेज रहे हैं तो आपको <uses-permission android:name="android.permission.INTERNET"/> की आवश्यकता होगी, क्योंकि email भेजने के लिए नेटवर्क access जरूरी है।
हाँ, आप JavaMail API का उपयोग करके Gmail app खोले बिना भी सीधे background से email भेज सकते हैं। इसके लिए आपको अपने Gmail अकाउंट का app-specific password और SMTP settings का उपयोग करना होता है।
यदि आप JavaMail API का उपयोग कर रहे हैं और सारी settings आपके server या backend पर नियंत्रित हैं, तो user permission की आवश्यकता नहीं होती। लेकिन Google की security policies के अनुसार user consent और app safety सुनिश्चित करना जरूरी होता है।
इसके कई कारण हो सकते हैं: गलत SMTP configuration, internet permission का न होना, app-specific password का उपयोग न करना, या email server द्वारा blocked ports। सबसे पहले log और exceptions की जांच करें और सुनिश्चित करें कि Gmail के लिए 2-Step Verification enabled है और सही app password उपयोग में है।

Please Give Us Feedback