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 }