In addition to the previous article, I shall provide here a slightly changed version of Sudhir Ancha's code as presented in his Sending Email From Your Application Using Java Mail article at javacomerice.com.
The only notable difference is the Charset = .. addition to the setContent() method of the message class, that allows sending the message using the iso8859-7 Greek character set.
package utils.mail;
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;
/**
* @class SendMail
* Encapsulates a simple mail sending using a specific SMTP Server
*/
public class SendMail {
// put you server here
public static final String SMTP_HOST = "smtp.mydomain.com";
public void post(String to, // recipient for the message
String subject, // subject
String message, // actual mesage text
String from) // address of sender
throws MessagingException
{
String[] recipients = new String[1];
recipients[0] = to;
postToMany(recipients, subject, message, from);
}
public void postToMany( String[] recipients, // list of recipients for the message
String subject, // subject
String message, // actual mesage text
String from) // address of sender
throws MessagingException
{
boolean debug = false;
//Set the host smtp address
Properties props = new Properties();
props.put("mail.smtp.host", SMTP_HOST);
// create some properties and get the default Session
Session session = Session.getDefaultInstance(props, null);
session.setDebug(debug);
// create a message
Message msg = new MimeMessage(session);
// 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);
// Content-type: text/html; charset=utf-8\r\n
// Optional : You can also set your custom headers in the Email if you Want
// msg.addHeader("Content-type", "text/html; charset=utf-8");
// Setting the Subject and Content Type
msg.setSubject(subject);
msg.setContent(message, "text/plain; Charset=iso8859-7");
Transport.send(msg);
}
private static final String emailMsgTxt = "Δοκιμαστικό μύνημα σταλμένο από Java.";
private static final String emailSubjectTxt = "EMail from Java";
private static final String emailFromAddress = "me@mydomain.gr";
private static final String[] emailList = {
"he@hisdomain.com",
"she@herdomain.gr"
};
public static void main(String[] args) throws Exception
{
SendMail smtpMailSender = new SendMail();
smtpMailSender.post("me@mydomain.om", emailSubjectTxt, emailMsgTxt,
emailFromAddress);
System.out.println("Sucessfully Sent mail to All Users");
}
}
No comments :
Post a Comment