1 package org.paneris.jammyjoes.functional;
2
3 import java.io.File;
4 import java.util.Properties;
5
6 import javax.activation.DataHandler;
7 import javax.activation.DataSource;
8 import javax.activation.FileDataSource;
9 import javax.mail.BodyPart;
10 import javax.mail.Message;
11 import javax.mail.Session;
12 import javax.mail.Transport;
13 import javax.mail.internet.InternetAddress;
14 import javax.mail.internet.MimeBodyPart;
15 import javax.mail.internet.MimeMessage;
16 import javax.mail.internet.MimeMultipart;
17
18 import junit.framework.TestCase;
19
20 import org.paneris.jammyjoes.mail.MailFascade;
21 import org.paneris.jammyjoes.mail.Newsletter;
22
23 public class TestCaseFunctionalSendingEmail extends TestCase {
24
25 public void testSend() throws Exception {
26 MailFascade unit = new MailFascade("relay.plus.net");
27 Newsletter newsletter = unit.createNewsletter("c:\\sandbox\\jammyjoes\\website\\", "newsletter.html");
28 newsletter.setRecipient("timj@hoop.co.uk");
29 unit.send(newsletter);
30 }
31
32 public void testSendingHtmlMail() throws Exception {
33 Properties props = new Properties();
34 props.put("mail.smtp.host", "smtp.ntlworld.com");
35 Session session = Session.getDefaultInstance(props, null);
36
37 MimeMessage message = new MimeMessage(session);
38 message.setFrom(new InternetAddress("from@hoop.co.uk"));
39 message.addRecipient(Message.RecipientType.TO, new InternetAddress("timj@hoop.co.uk"));
40 message.setSubject("Hello JavaMail");
41
42 BodyPart messageBodyPart = new MimeBodyPart();
43 String htmlText = "<H1>Hello</H1>" + "<img src=\"cid:memememe\">";
44 messageBodyPart.setContent(htmlText, "text/html");
45
46 MimeMultipart multipart = new MimeMultipart("related");
47 multipart.addBodyPart(messageBodyPart);
48
49 messageBodyPart = new MimeBodyPart();
50
51 File file = new File("website/images/jammyjoes.gif");
52 DataSource fds = new FileDataSource(file);
53 messageBodyPart.setDataHandler(new DataHandler(fds));
54 messageBodyPart.setHeader("Content-ID", "<memememe>");
55
56 multipart.addBodyPart(messageBodyPart);
57
58 message.setContent(multipart);
59
60 Transport.send(message);
61 }
62
63 }