You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@struts.apache.org by Caroline Jen <ji...@yahoo.com> on 2004/10/13 16:11:40 UTC

Re: how to send batch emails

I have been using the same utility class (JavaMail
API) to send e-mails.  The code works OKay.

Now, instead of the 

String toAddress

I have String[] toAddress =
selectRecipientsForm.getSelectedEmailAddresses();

will the same code works for sending batch e-mails?



--- Duncan Mills <du...@oracle.com> wrote:

> Its pretty simple to plug in the JavaMail API -
> here's a Utility class I 
> call from an Action I use when resetting a User
> Password: It's quick and 
> dirty but provides an example.  The SMTP mail host
> is read from a 
> properties file in this case, but equally could be
> passed in from the 
> Appliciation scope. Note the total lack of  any kind
> of useful error 
> handling in this example - I think I better re-write
> it :-)
> 
> [--Badly formmated code begin--]
> package com.groundside.util;
> import java.io.IOException;
> import java.io.InputStream;
> import java.util.Properties;
> import javax.mail.Message;
> import javax.mail.MessagingException;
> import javax.mail.Session;
> import javax.mail.Transport;
> import javax.mail.internet.InternetAddress;
> import javax.mail.internet.MimeMessage;
> 
> public class Emailer
> {
>   String toAddress;
>   String fromAddress;
>   String msgText;
>   String smtpServer;
>   String msgSubject;
> 
>   public Emailer()
>   {
>   }
> 
>   public Emailer(String from, String to, String
> subject, String message)
>   {
>     setFromAddress(from);
>     setToAddress(to);
>     setMsgSubject(subject);
>     setMsgText(message);
>   }
>  
>   public void sendMail()
>   {
>     Session session = null;
>     MimeMessage msg = null;
>     Properties props = new Properties();
>    
>     if (this.getSmtpServer() == null)
>     {
>       ClassLoader propLoader =
> this.getClass().getClassLoader();
>       //Properties file just lives in the src root
>       InputStream is =
> propLoader.getResourceAsStream("mailer.properties");
>       try
>       {
>         props.load(is);   
>        
> setSmtpServer((String)props.get("mail.smtp.host"));
>       }
>       catch (IOException iox)
>       {
>         System.out.println("Mail Properties load
> failed " + iox.toString());
>       }
>      
>     }
>     else
>     {
>      
> props.put("mail.smtp.host",this.getSmtpServer());
>     }
> 
>     session = Session.getDefaultInstance(props);
>     try
>     {
>       msg = new MimeMessage(session);
>      
>       msg.setFrom(new
> InternetAddress(this.getFromAddress()));
>       msg.addRecipient(Message.RecipientType.TO,new 
> InternetAddress(this.getToAddress()));
>       msg.setSubject(getMsgSubject());
>       msg.setText(getMsgText());
>      
>       Transport.send(msg);
>     }
>     catch (MessagingException mex)
>     {
>       mex.printStackTrace();
>     }
>    
>    
>   }
> 
>   // Getters and Setters
>   public String getToAddress()
>   {
>     return toAddress;
>   }
> 
>   public void setToAddress(String toAddress)
>   {
>     this.toAddress = toAddress;
>   }
> 
>   public String getFromAddress()
>   {
>     return fromAddress;
>   }
> 
>   public void setFromAddress(String fromAddress)
>   {
>     this.fromAddress = fromAddress;
>   }
> 
>   public String getMsgText()
>   {
>     return msgText;
>   }
> 
>   public void setMsgText(String msgText)
>   {
>     this.msgText = msgText;
>   }
> 
>   public String getSmtpServer()
>   {
>     return smtpServer;
>   }
> 
>   public void setSmtpServer(String smtpServer)
>   {
>     this.smtpServer = smtpServer;
>   }
> 
>   public String getMsgSubject()
>   {
>     return msgSubject;
>   }
> 
>   public void setMsgSubject(String msgSubject)
>   {
>     this.msgSubject = msgSubject;
>   }
> }
> 
> [--Badly formmated code end--]
> 
> 
> Regards
> 
> Duncan Mills
> 
> 
> 
> Richard wrote:
> 
> >hi guys
> >
> >
> >I have a form submitted to an action class and i
> need the information
> >on the form to be emailed
> >to some email address.  how can i do this ? can it
> be done inside the
> >same action?
> >
> >please help
> >thanks
> >richard
> >
>
>---------------------------------------------------------------------
> >To unsubscribe, e-mail:
> user-unsubscribe@struts.apache.org
> >For additional commands, e-mail:
> user-help@struts.apache.org
> >
> >  
> >
> 
>
---------------------------------------------------------------------
> To unsubscribe, e-mail:
> user-unsubscribe@struts.apache.org
> For additional commands, e-mail:
> user-help@struts.apache.org
> 
> 


__________________________________________________
Do You Yahoo!?
Tired of spam?  Yahoo! Mail has the best spam protection around 
http://mail.yahoo.com 

---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscribe@struts.apache.org
For additional commands, e-mail: user-help@struts.apache.org


Re: how to send batch emails

Posted by Jay Chandran <ja...@iqss.co.in>.
Hai ,

Please check the below code which helps u to send batch mails ..

import javax.mail.Folder;
import javax.mail.Store;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.Session;
import java.util.Properties;
import java.sql.Connection;
import javax.sql.DataSource;
import java.sql.ResultSet;
import java.sql.Statement;
import java.sql.SQLException;
import java.util.Date;
import java.util.Calendar;
import java.util.GregorianCalendar;
import java.lang.String;
import java.text.SimpleDateFormat;
import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.ActionServlet;
import org.apache.struts.action.DynaActionForm;
import java.util.ArrayList;




    public final class PricingInfoAction extends Action
     {

           private static final String SMTP_HOST_NAME = "";

           public String emailMsgTxt = null;
           private static final String emailSubjectTxt  = "Ad Order
Details";
           private static final String emailFromAddress = "";
    public ActionForward perform(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
     {

       // Add List of Email address to who email needs to be sent to
                String[] emailList = new String[2];
                emailList[0]= new String("k_devan_2000@yahoo.com");
                emailList[1]= new String("jaychandran24@ayahoo.com");

                                emailMsgTxt="Ad Order Details";

                             try {
                                    postMail( emailList, emailSubjectTxt,
emailMsgTxt, emailFromAddress);
                                  }catch (Exception e)
                                 {
                                  return
(mapping.findForward("mailfailure"));
                                 }


                        }catch (Exception e) {
                            return (mapping.findForward("submitadfail"));
                         }

     return (mapping.findForward(target));

          }

      public void postMail( String recipients[ ], String subject,
                            String message , String from) throws
MessagingException
                  {

                    boolean debug = false;

                    //Set the host smtp address
                    Properties props = new Properties();
                    props.put("mail.smtp.host", SMTP_HOST_NAME);
                    Session session = Session.getDefaultInstance(props,
null);

                    session.setDebug(debug);

                     // set the from and to address
                   InternetAddress addressFrom = new InternetAddress(from);
                   msg.setFrom(addressFrom);

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


                   // Setting the Subject and Content Type
                   msg.setSubject(subject);
                   msg.setContent(message, "text/plain");
                   Transport.send(msg);
                }

       }
----- Original Message -----
From: "Caroline Jen" <ji...@yahoo.com>
To: "Struts Users Mailing List" <us...@struts.apache.org>
Sent: Wednesday, October 13, 2004 7:41 PM
Subject: Re: how to send batch emails


> I have been using the same utility class (JavaMail
> API) to send e-mails.  The code works OKay.
>
> Now, instead of the
>
> String toAddress
>
> I have String[] toAddress =
> selectRecipientsForm.getSelectedEmailAddresses();
>
> will the same code works for sending batch e-mails?
>
>
>
> --- Duncan Mills <du...@oracle.com> wrote:
>
> > Its pretty simple to plug in the JavaMail API -
> > here's a Utility class I
> > call from an Action I use when resetting a User
> > Password: It's quick and
> > dirty but provides an example.  The SMTP mail host
> > is read from a
> > properties file in this case, but equally could be
> > passed in from the
> > Appliciation scope. Note the total lack of  any kind
> > of useful error
> > handling in this example - I think I better re-write
> > it :-)
> >
> > [--Badly formmated code begin--]
> > package com.groundside.util;
> > import java.io.IOException;
> > import java.io.InputStream;
> > import java.util.Properties;
> > import javax.mail.Message;
> > import javax.mail.MessagingException;
> > import javax.mail.Session;
> > import javax.mail.Transport;
> > import javax.mail.internet.InternetAddress;
> > import javax.mail.internet.MimeMessage;
> >
> > public class Emailer
> > {
> >   String toAddress;
> >   String fromAddress;
> >   String msgText;
> >   String smtpServer;
> >   String msgSubject;
> >
> >   public Emailer()
> >   {
> >   }
> >
> >   public Emailer(String from, String to, String
> > subject, String message)
> >   {
> >     setFromAddress(from);
> >     setToAddress(to);
> >     setMsgSubject(subject);
> >     setMsgText(message);
> >   }
> >
> >   public void sendMail()
> >   {
> >     Session session = null;
> >     MimeMessage msg = null;
> >     Properties props = new Properties();
> >
> >     if (this.getSmtpServer() == null)
> >     {
> >       ClassLoader propLoader =
> > this.getClass().getClassLoader();
> >       //Properties file just lives in the src root
> >       InputStream is =
> > propLoader.getResourceAsStream("mailer.properties");
> >       try
> >       {
> >         props.load(is);
> >
> > setSmtpServer((String)props.get("mail.smtp.host"));
> >       }
> >       catch (IOException iox)
> >       {
> >         System.out.println("Mail Properties load
> > failed " + iox.toString());
> >       }
> >
> >     }
> >     else
> >     {
> >
> > props.put("mail.smtp.host",this.getSmtpServer());
> >     }
> >
> >     session = Session.getDefaultInstance(props);
> >     try
> >     {
> >       msg = new MimeMessage(session);
> >
> >       msg.setFrom(new
> > InternetAddress(this.getFromAddress()));
> >       msg.addRecipient(Message.RecipientType.TO,new
> > InternetAddress(this.getToAddress()));
> >       msg.setSubject(getMsgSubject());
> >       msg.setText(getMsgText());
> >
> >       Transport.send(msg);
> >     }
> >     catch (MessagingException mex)
> >     {
> >       mex.printStackTrace();
> >     }
> >
> >
> >   }
> >
> >   // Getters and Setters
> >   public String getToAddress()
> >   {
> >     return toAddress;
> >   }
> >
> >   public void setToAddress(String toAddress)
> >   {
> >     this.toAddress = toAddress;
> >   }
> >
> >   public String getFromAddress()
> >   {
> >     return fromAddress;
> >   }
> >
> >   public void setFromAddress(String fromAddress)
> >   {
> >     this.fromAddress = fromAddress;
> >   }
> >
> >   public String getMsgText()
> >   {
> >     return msgText;
> >   }
> >
> >   public void setMsgText(String msgText)
> >   {
> >     this.msgText = msgText;
> >   }
> >
> >   public String getSmtpServer()
> >   {
> >     return smtpServer;
> >   }
> >
> >   public void setSmtpServer(String smtpServer)
> >   {
> >     this.smtpServer = smtpServer;
> >   }
> >
> >   public String getMsgSubject()
> >   {
> >     return msgSubject;
> >   }
> >
> >   public void setMsgSubject(String msgSubject)
> >   {
> >     this.msgSubject = msgSubject;
> >   }
> > }
> >
> > [--Badly formmated code end--]
> >
> >
> > Regards
> >
> > Duncan Mills
> >
> >
> >
> > Richard wrote:
> >
> > >hi guys
> > >
> > >
> > >I have a form submitted to an action class and i
> > need the information
> > >on the form to be emailed
> > >to some email address.  how can i do this ? can it
> > be done inside the
> > >same action?
> > >
> > >please help
> > >thanks
> > >richard
> > >
> >
> >---------------------------------------------------------------------
> > >To unsubscribe, e-mail:
> > user-unsubscribe@struts.apache.org
> > >For additional commands, e-mail:
> > user-help@struts.apache.org
> > >
> > >
> > >
> >
> >
> ---------------------------------------------------------------------
> > To unsubscribe, e-mail:
> > user-unsubscribe@struts.apache.org
> > For additional commands, e-mail:
> > user-help@struts.apache.org
> >
> >
>
>
> __________________________________________________
> Do You Yahoo!?
> Tired of spam?  Yahoo! Mail has the best spam protection around
> http://mail.yahoo.com
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: user-unsubscribe@struts.apache.org
> For additional commands, e-mail: user-help@struts.apache.org
>
>



---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscribe@struts.apache.org
For additional commands, e-mail: user-help@struts.apache.org