* THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS''
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
* TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS
* BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*/
import java.util.Date;
import java.util.Properties;
import java.util.StringTokenizer;
import javax.mail.Address;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.SendFailedException;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
public class Mailer
{
private String host = "";
private String to = "";
private String from = "";
private String subject = "";
private String body = "";
public Mailer(String pHost)
{
host = pHost;
}
public void setTo(String pTo)
{
to = pTo;
}
public void setFrom(String pFrom)
{
from = pFrom;
}
public void setSubject(String pSub)
{
subject = pSub;
}
public void setBody(String pBody)
{
body = pBody;
}
/*
* This method sends an email for the given parameters. It returns a boolean
* value depending on the status of the mail sending process.
*/
public boolean sendMail()
{
Properties props = new Properties();
props.put("mail.smtp.host", host);
Session session = Session.getDefaultInstance(props, null);
try
{
// create a message
Message msg = new MimeMessage(session);
msg.setFrom(new InternetAddress(from));
StringTokenizer stkz = new StringTokenizer(to, ",");
InternetAddress[] address = new InternetAddress[stkz.countTokens()];
int i = 0;
while (stkz.hasMoreTokens())
{
address[i] = new InternetAddress(stkz.nextToken().trim());
i++;
}
msg.setRecipients(Message.RecipientType.TO, address);
msg.setSubject(subject);
msg.setSentDate(new Date());
msg.setText(body);
Transport.send(msg);
return true;
}
catch (MessagingException mex)
{
mex.printStackTrace();
System.out.println();
Exception ex = mex;
do
{
if (ex instanceof SendFailedException)
{
SendFailedException sfex = (SendFailedException) ex;
Address[] invalid = sfex.getInvalidAddresses();
if (invalid != null)
{
System.err.println("In-valid Email Addresses");
if (invalid != null)
{
for (int i = 0; i < invalid.length; i++)
System.out.println("Address = " + invalid[i]);
}
}
Address[] validUnsent = sfex.getValidUnsentAddresses();
if (validUnsent != null)
{
System.err.println("Email not sent to Addresses");
if (validUnsent != null)
{
for (int i = 0; i < validUnsent.length; i++)
System.out.println("Address = " + validUnsent[i]);
}
}
}
}
while ((ex = ((MessagingException) ex).getNextException()) != null);
return false;
}
}
public static void main(String args[])
{
String pHost = "";
String pTo = "";
String pFrom = "";
String pSubject = "";
// provide the smtp host below
pHost = "smtp.techdive.in";
// to send email to multiple users, provide email ids as comma separated values
pTo = "user1@techdive.in,user2@techdive.in";
pFrom = "admin@techdive.in";
pSubject = "Test Mail - Techdive";
String pBodyq = "This is a Test Mail from Techdive.in";
Mailer eMail = new Mailer(pHost);
eMail.setTo(pTo);
eMail.setFrom(pFrom);
eMail.setSubject(pSubject);
eMail.setBody(pBodyq);
eMail.sendMail();
}
}