0

I'm kinda of new in android. How can i send an email automatically without a contact chooser. I write a list of e-mails in edittext and an message and then i want to send to every email address. How can i do that?

  • have you tried with `mailTo:` using intent? – Piyush May 11 '17 at 10:37
  • Possible duplicate of [Sending Email in Android using JavaMail API without using the default/built-in app](http://stackoverflow.com/questions/2020088/sending-email-in-android-using-javamail-api-without-using-the-default-built-in-a) – Sufian May 12 '17 at 14:57

4 Answers4

0
 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();
      }
Jai Khambhayta
  • 4,198
  • 2
  • 22
  • 29
0

@Debora

One way where I have implemented this scenario is I created an editText for user where he/she supposed to enter email id.

After app level email id validation. I used to call my server api where i post the email ids along with content and subject and then server was responsible for sending mail.

eLemEnt
  • 1,741
  • 14
  • 21
0

Refer this code

    final Intent emailIntent= new Intent(Intent.ACTION_SEND_MULTIPLE);
    emailIntent.setType("message/rfc822");
    emailIntent.putExtra(Intent.EXTRA_EMAIL, new String[] { "appsupport@YOUR_DOMAIN.com",....... }); //Heare you can add the list of email address you have
    emailIntent.putExtra(Intent.EXTRA_SUBJECT, "Mail subject");
    emailIntent.putExtra(Intent.EXTRA_TEXT, "Mail content");
    try{
           startActivity(emailIntent);
    }catch(ActivityNotFoundException e){

    }

If you want to send the email with out user interaction then check the link:https://www.mindstick.com/Articles/1673/sending-mail-without-user-interaction-in-android

EKN
  • 1,886
  • 1
  • 16
  • 29
0

Please follow the steps mentioned below. It will send the email directly if app is connected to working internet. Don't forget to add INTERNET permission.

1. Add Mail.java to your code

2. Add jar files mail.jar, activation.jar, additionnal.jar

3. Use following code send an email, change email id and password.

String sub="Thank you for your online registration" ; 
Mail m = new Mail("emailid", "password"); 

String[] toArr = {"testecn2@gmail.com",sEmailId};
m.setFrom("testecn2@gmail.com"); 

m.setTo(toArr);
m.setSubject(sub);
m.setBody(msg);             

try{

    if(m.send()) { 
       //successful
    } else { 
      //failure
    } 
} catch(Exception e) { 

    Log.e("MailApp", "Could not send email", e); 
}

Mail.java

   package com.example.mail;

   import java.util.Date;
   import java.util.Properties;

   import javax.activation.CommandMap;
   import javax.activation.DataHandler;
   import javax.activation.DataSource;
   import javax.activation.FileDataSource;
   import javax.activation.MailcapCommandMap;
   import javax.mail.BodyPart;
   import javax.mail.Multipart;
   import javax.mail.PasswordAuthentication;
   import javax.mail.Session;
   import javax.mail.Transport;
   import javax.mail.internet.InternetAddress;
   import javax.mail.internet.MimeBodyPart;
   import javax.mail.internet.MimeMessage;
   import javax.mail.internet.MimeMultipart;

   public class Mail extends javax.mail.Authenticator { 
         private String _user; 
         private String _pass; 

         private String[] _to; 

         private String _from; 

         private String _port; 
         private String _sport; 

         private String _host; 

         private String _subject; 
         private String _body; 

         private boolean _auth; 

         private boolean _debuggable; 

         private Multipart _multipart; 


       public Mail() { 
          _host = "smtp.gmail.com"; // default smtp server 
          _port = "465"; // default smtp port 
          _sport = "465"; // default socketfactory port 

          _user = ""; // username 
          _pass = ""; // password 
          _from = ""; // email sent from 
          _subject = ""; // email subject 
          _body = ""; // email body 

          _debuggable = false; // debug mode on or off - default off 
          _auth = true; // smtp authentication - default on 

          _multipart = new MimeMultipart(); 

          // There is something wrong with MailCap, javamail can not find a handler for the        multipart/mixed part, so this bit needs to be added. 
          MailcapCommandMap mc = (MailcapCommandMap) CommandMap.getDefaultCommandMap(); 
       mc.addMailcap("text/html;; x-java-content-handler=com.sun.mail.handlers.text_html"); 
       mc.addMailcap("text/xml;; x-java-content-handler=com.sun.mail.handlers.text_xml"); 
       mc.addMailcap("text/plain;; x-java-content-  handler=com.sun.mail.handlers.text_plain"); 
       mc.addMailcap("multipart/*;; x-java-content-handler=com.sun.mail.handlers.multipart_mixed"); 
       mc.addMailcap("message/rfc822;; x-java-content- handler=com.sun.mail.handlers.message_rfc822"); 
        CommandMap.setDefaultCommandMap(mc); 
       } 

     public Mail(String user, String pass) { 
      this(); 

      _user = user; 
       _pass = pass; 
     } 

    public boolean send() throws Exception { 
       Properties props = _setProperties(); 

      if(!_user.equals("") && !_pass.equals("") && _to.length > 0 && !_from.equals("") &&   !_subject.equals("") /*&& !_body.equals("")*/) { 
        Session session = Session.getInstance(props, this); 

        MimeMessage msg = new MimeMessage(session); 

         msg.setFrom(new InternetAddress(_from)); 

        InternetAddress[] addressTo = new InternetAddress[_to.length]; 
         for (int i = 0; i < _to.length; i++) { 
          addressTo[i] = new InternetAddress(_to[i]); 
        } 
          msg.setRecipients(MimeMessage.RecipientType.TO, addressTo); 

        msg.setSubject(_subject); 
        msg.setSentDate(new Date()); 

      // setup message body 
      BodyPart messageBodyPart = new MimeBodyPart(); 
        messageBodyPart.setText(_body); 
        _multipart.addBodyPart(messageBodyPart); 

         // Put parts in message 
        msg.setContent(_multipart); 

        // send email 
        Transport.send(msg); 

        return true; 
       } else { 
         return false; 
       } 
      } 

    public void addAttachment(String filename) throws Exception { 
        BodyPart messageBodyPart = new MimeBodyPart(); 
        DataSource source = new FileDataSource(filename); 
          messageBodyPart.setDataHandler(new DataHandler(source)); 
        messageBodyPart.setFileName(filename); 

       _multipart.addBodyPart(messageBodyPart); 
     } 

      @Override 
      public PasswordAuthentication getPasswordAuthentication() { 
         return new PasswordAuthentication(_user, _pass); 
      } 

       private Properties _setProperties() { 
       Properties props = new Properties(); 

        props.put("mail.smtp.host", _host); 

      if(_debuggable) { 
        props.put("mail.debug", "true"); 
      } 

      if(_auth) { 
        props.put("mail.smtp.auth", "true"); 
       } 

        props.put("mail.smtp.port", _port); 
        props.put("mail.smtp.socketFactory.port", _sport); 
        props.put("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory"); 
        props.put("mail.smtp.socketFactory.fallback", "false"); 

        return props; 
       } 

   // the getters and setters 
      public String getBody() { 
       return _body; 
     } 

     public void setBody(String _body) { 
      this._body = _body; 
     }

      public void setTo(String[] toArr) {
         // TODO Auto-generated method stub
        this._to=toArr;
     }

    public void setFrom(String string) {
        // TODO Auto-generated method stub
        this._from=string;
    }

    public void setSubject(String string) {
       // TODO Auto-generated method stub
       this._subject=string;
    }  

}

PEHLAJ
  • 9,980
  • 9
  • 41
  • 53