In this system, Email subjects are encoded in Q' scheme, a scheme similar to quoted printable’. The format is “=?charset?Q?encoded subject?=”, in our case, the charset is `ISO-8859-15′.
For example, the Email object in this system is as follows:
importjava.text.SimpleDateFormat;
import java.util.Calendar;
/**
* Email object.
*
* @author Daoyuan Li
*/
public class Mail {
/**
* Sender's Email address
*/
private String from;
/**
* Recipient's Email address
*/
private String to;
/**
* Email subject
*/
private String subject;
/**
* Email message body
*/
private Stringmessage;
/**
* Constructor of Mail
* @param from Sender's Email address.
* @param to Recipient's Email address.
* @param subject Email subject.
* @param message Email message.
*/
public Mail(String from, String to, String subject, String message) {
this.from = from;
this.to = to;
this.subject = subject;
this.message = message;
}
/**
* Get sender'sEmail address.
* @return Sender's Email address.
*/
public String getFrom() {
return this.from;
}
/**
* Get Recipient's Email address.
* @return Recipient's Email address.
*/
public String getTo() {
return this.to;
}
/**
* Get Email subject.
* @return Email subject.
*/
public String getSubject() {
return this.subject;
}
/**
* Get Email message.
* @return Email message.
*/
public String getMessage() {
return this.message;
}
/**
* Set sender's Email address.
* @param from Sender's Email address.
*/
public void setFrom(String from) {
this.from = from;
}
/**
* Set Recipient's Email address.
* @param to Recipient's Email address.
*/
public void setTo(String to) {
this.to = to;
}
/**
* Set Email subject.
* @param subject Email subject.
*/
public void setSubject(String subject) {
this.subject = subject;
}
/**
* Set Email message.
* @param message Email message.
*/
public void setMessage(String message) {
this.message = message;
}
/**
* Encode Email into MIMEformat.
* @return The MIME encoded Email.
*/
public String encode() {
String FORMAT = "EEE, dd MMM yyyy HH:mm:ss Z";
//String FORMAT = "yyyy-MM-dd HH:mm:ss Z";
Calendar cal = null;
cal = Calendar.getInstance();
SimpleDateFormat sdf = new SimpleDateFormat(FORMAT);
//System.out.println(sdf.format(cal.getTime()));
String s = "From: <" + this.getFrom() + ">\n"
+ "To:<" + this.getTo() + ">\n"
//+ "Subject: " + this.getSubject() + "\n"
+ "Subject: =?ISO-8859-15?Q?"
+ new QuotedPrintableEncoder().encodeWithoutLineBreak(this.subject) + "?=\n"
+ "Date: " + sdf.format(cal.getTime()) + "\n"
+ "Message-ID: " + cal.getTimeInMillis() + "@ik2213.lab\n"
+ "MIME-Version: 1.0\n"
+ "Content-Type:text/plain; charset=ISO-8859-15\n"
+ "Content-Transfer-Encoding: quoted-printable\n";
return s.concat(new QuotedPrintableEncoder().encode(this.message));
}
}
Leave a Comment