package org.simpleframework.http.validate.test;
import java.io.StringWriter;
import javax.mail.internet.MimeBodyPart;
import javax.mail.internet.MimeMultipart;
import junit.framework.TestCase;
public class MultipartTest extends TestCase {
public void testMultipart() throws Exception {
MimeMultipart multipart = new MimeMultipart();
MimeBodyPart inner = new MimeBodyPart();
MimeBodyPart main = new MimeBodyPart();
main.addHeader("Content-Type", "multipart/form");
main.addHeader("Connection", "close");
attachMultipart(inner);
attachTextPart(multipart, "Blah", "plain");
attachRandomFilePart(multipart, "file.txt");
multipart.addBodyPart(inner);
main.setContent(multipart);
main.writeTo(System.out);
}
public void attachMultipart(MimeBodyPart part) throws Exception {
MimeMultipart multipart = new MimeMultipart();
attachTextPart(multipart, "First", "plain");
attachTextPart(multipart, "Second", "plain");
attachTextPart(multipart, "Third", "plain");
part.setContent(multipart);
}
private void attachTextPart(MimeMultipart multipart, String text, String subtype) throws Exception {
MimeBodyPart part = new MimeBodyPart();
part.setHeader("Content-Length", String.valueOf(text.length()));
part.setText(text, "UTF-8", subtype);
multipart.addBodyPart(part);
}
private void attachRandomFilePart(MimeMultipart multipart, String filename) throws Exception {
StringWriter content = new StringWriter();
MimeBodyPart part = new MimeBodyPart();
for(int i = 0; i < 30; i++) {
String index = i < 10 ? ("0" + i) : String.valueOf(i);
content.write(index + ": xxxx xxxx xxxx xxxx xxxx\r\n");
}
String text = content.toString();
int length = text.length();
part.setHeader("Content-Length", String.valueOf(length));
part.setText(text, "UTF-8");
part.setFileName(filename);
multipart.addBodyPart(part);
}
}
/*
package org.kodejava.example.mail;
import java.util.Date;
import java.util.Properties;
import javax.activation.DataHandler;
import javax.activation.FileDataSource;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.Multipart;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeBodyPart;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.MimeMultipart;
public class EmailAttachmentDemo {
public static void main(String[] args) {
EmailAttachmentDemo demo = new EmailAttachmentDemo();
demo.sendEmail();
}
public void sendEmail() {
String from = "me@localhost";
String to = "me@localhost";
String subject = "Important Message";
String bodyText = "This is a important message with attachment";
String filename = "message.pdf";
Properties properties = new Properties();
properties.put("mail.stmp.host", "localhost");
properties.put("mail.smtp.port", "25");
Session session = Session.getDefaultInstance(properties, null);
try {
MimeMessage message = new MimeMessage(session);
message.setFrom(new InternetAddress(from));
message.setRecipient(Message.RecipientType.TO, new InternetAddress(to));
message.setSubject(subject);
message.setSentDate(new Date());
//
// Set the email message text.
//
MimeBodyPart messagePart = new MimeBodyPart();
messagePart.setText(bodyText);
//
// Set the email attachment file
//
MimeBodyPart attachmentPart = new MimeBodyPart();
FileDataSource fileDataSource = new FileDataSource(filename) {
@Override
public String getContentType() {
return "application/octet-stream";
}
};
attachmentPart.setDataHandler(new DataHandler(fileDataSource));
attachmentPart.setFileName(filename);
Multipart multipart = new MimeMultipart();
multipart.addBodyPart(messagePart);
multipart.addBodyPart(attachmentPart);
message.setContent(multipart);
Transport.send(message);
} catch (MessagingException e) {
e.printStackTrace();
}
}
}
*/