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  }