[jboss-user] [Installation, Configuration & DEPLOYMENT] - JavaMail, apply text format
beherenow
do-not-reply at jboss.com
Wed Apr 30 04:14:34 EDT 2008
Hello! I am sending auto-generated email to the users of my application, and I want to know how to apply text-format to mails.
I'm using the textEmail class:
public class TextEmail {
private static final String SMTP = "smtp";
private static final String MAIL_TRANSPORT_PROTOCOL = "mail.transport.protocol";
private static final String MAIL_SMTP_HOST = "mail.smtp.host";
private static final String MAIL_SMTP_PORT = "mail.smtp.port";
private static final String MAIL_DEBUG = "mail.debug";
private static final String SENDER_ERROR_MSG = "Sender is null or empty";
private static final String SUBJECT_ERROR_MSG = "Subject is null or empty";
private static final String BODY_ERROR_MSG = "Body is null or empty";
private static final String RECIPIENT_ERROR_MSG = "Recipient is null or empty";
private static final String RECIPIENTS_ERROR_MSG = "Recipient List is null or empty";
private static final String CC_RECIPIENT_ERROR_MSG = "CC Recipient is null or empty";
private static final String CC_RECIPIENTS_ERROR_MSG = "CC Recipient List is null or empty";
private static final String BCC_RECIPIENT_ERROR_MSG = "BCC Recipient is null or empty";
private static final String BCC_RECIPIENTS_ERROR_MSG = "BCC Recipient List is null or empty";
private static final String SENT_DATE_ERROR_MSG = "Sent Date is null";
private static final String MAIL_SMTP_HOST_ERROR_MSG = "SMTP Host name is null or empty";
private static final String INVALID_ADDRESS_MSG = "Email Address does not conform to RFC 822 standard";
private Session session;
private InternetAddress sender = new InternetAddress();
private String subject = new String();
private StringBuffer body = new StringBuffer();
private List recipients = new ArrayList();
private List ccRecipients = new ArrayList();
private List bccRecipients = new ArrayList();
private Date sentDate;
public TextEmail() throws EmailException {
setSession(getDefaultSession());
}
public TextEmail(Session session) throws EmailException {
setSession(session);
}
public TextEmail(String sender, String subject, String body, List recipients) throws EmailException {
this();
setSender(sender);
setSubject(subject);
setBody(body);
setRecipients(recipients);
}
public TextEmail(String sender, String subject, String body,
List recipients, List ccRecipients) throws EmailException {
this(sender, subject, body, recipients);
setCcRecipients(ccRecipients);
}
public String getSender() {
return sender.toString();
}
public void setSender(String sender) throws EmailException {
this.sender = TextEmail.makeInternetAddress(sender);
}
private static InternetAddress makeInternetAddress(String emailAddress) throws EmailException {
InternetAddress internetAddress = null;
try {
internetAddress = new InternetAddress(emailAddress);
internetAddress.validate();
} catch (AddressException ae) {
throw new EmailException(TextEmail.INVALID_ADDRESS_MSG + " " + emailAddress + ":\n" + ae);
}
return internetAddress;
}
public String getSubject() {
return subject;
}
public void setSubject(String subject) {
this.subject = subject;
}
public String getBody() {
return body.toString();
}
public void setBody(String body) throws IllegalArgumentException {
this.body = new StringBuffer(body);
}
public List getRecipients() {
return TextEmail.internetAddressesToStrings(recipients);
}
/**
* @return
*/
private static List internetAddressesToStrings(List internetAddressRecipients) {
List stringRecipients = new ArrayList();
Iterator internetAddressRecipientsIter = internetAddressRecipients.iterator();
while (internetAddressRecipientsIter.hasNext()) {
InternetAddress internetAddress = (InternetAddress) internetAddressRecipientsIter.next();
stringRecipients.add(internetAddress.toString());
}
return stringRecipients;
}
public void addRecipient(String recipient) throws EmailException {
recipients.add(TextEmail.makeInternetAddress(recipient));
}
public void setRecipients(List recipients) throws EmailException {
TextEmail.setRecipients(this.recipients, recipients);
}
private static void setRecipients(List dest, List src) throws EmailException {
dest.clear();
dest.addAll(TextEmail.stringsToInternetAddresses(src));
}
/**
* @return
* @throws EmailException
*/
private static List stringsToInternetAddresses(List stringRecipients) throws EmailException {
List internetAddressRecipients = new ArrayList();
Iterator stringRecipientsIter = stringRecipients.iterator();
while (stringRecipientsIter.hasNext()) {
String address = (String) stringRecipientsIter.next();
internetAddressRecipients.add(TextEmail.makeInternetAddress(address));
}
return internetAddressRecipients;
}
public List getCcRecipients() {
return TextEmail.internetAddressesToStrings(ccRecipients);
}
public void addCcRecipient(String recipient) throws EmailException {
ccRecipients.add(TextEmail.makeInternetAddress(recipient));
}
public void setCcRecipients(List ccRecipients) throws EmailException {
TextEmail.setRecipients(this.ccRecipients, ccRecipients);
}
public boolean hasCcRecipients() {
return (ccRecipients != null && !ccRecipients.isEmpty());
}
public List getBccRecipients() {
return TextEmail.internetAddressesToStrings(bccRecipients);
}
public void addBccRecipient(String recipient) throws EmailException {
bccRecipients.add(TextEmail.makeInternetAddress(recipient));
}
public void setBccRecipients(List bccRecipients) throws EmailException {
TextEmail.setRecipients(this.bccRecipients, bccRecipients);
}
public boolean hasBccRecipients() {
return (bccRecipients != null && !bccRecipients.isEmpty());
}
public void setSentDate(Date sentDate) throws IllegalArgumentException {
this.sentDate = sentDate;
}
public Date getSentDate() {
if (sentDate == null) {
sentDate = new Date();
}
return sentDate;
}
private Session getDefaultSession() throws EmailException {
Properties props = new Properties(),
sysProps = System.getProperties();
String mailSmtpHost = sysProps.getProperty(TextEmail.MAIL_SMTP_HOST),
mailSmtpPort = sysProps.getProperty(TextEmail.MAIL_SMTP_PORT),
mailDebug = sysProps.getProperty(TextEmail.MAIL_DEBUG, "false");
props.setProperty(TextEmail.MAIL_TRANSPORT_PROTOCOL, SMTP);
props.setProperty(TextEmail.MAIL_SMTP_HOST, mailSmtpPort);
props.setProperty(TextEmail.MAIL_SMTP_HOST, mailSmtpHost);
props.setProperty(TextEmail.MAIL_DEBUG, mailDebug);
// Get the default Session using Properties.
Session session = Session.getDefaultInstance(props);
return session;
}
/**
* @return Returns the session.
*/
public Session getSession() {
return session;
}
/**
* @param session The session to set.
*/
public void setSession(Session session) {
this.session = session;
}
/**
* This method sends an email message using the JavaMail API.
*
* @param mailMessage The email message to send.
*/
public void send() throws EmailException {
try {
InternetAddress[] recipientsArr = (InternetAddress[]) recipients.toArray(new InternetAddress[0]);
// Create a New message.
MimeMessage msg = new MimeMessage(session);
// Set the "From" address.
msg.setFrom(sender);
// Set the "To recipients" addresses.
msg.setRecipients(Message.RecipientType.TO, recipientsArr);
if (hasCcRecipients()) {
InternetAddress[] ccRecipientsArr = (InternetAddress[]) ccRecipients.toArray(new InternetAddress[0]);
// Cc Recipients are optional.
// Set the "Cc recipients" addresses.
msg.setRecipients(Message.RecipientType.CC, ccRecipientsArr);
}
if (hasBccRecipients()) {
InternetAddress[] bccRecipientsArr = (InternetAddress[])
bccRecipients.toArray(new InternetAddress[0]);
// Bcc Recipients are optional.
// Set the "Bcc recipients" addresses.
msg.setRecipients(Message.RecipientType.BCC, bccRecipientsArr);
}
// Set the Subject.
msg.setSubject(subject);
// Set the Text.
msg.setText(body.toString());
// Set the sent date.
msg.setSentDate(getSentDate());
// Send the message.
Transport.send(msg);
} catch (MessagingException me) {
throw new EmailException(me);
}
}
}
Any idea? I tryed html but it not works...
Thanks!
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4147737#4147737
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4147737
More information about the jboss-user
mailing list