commons-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Ben Speakmon (JIRA)" <j...@apache.org>
Subject [jira] Commented: (EMAIL-28) [email] Problems with HTML emails with attachments and embedded images
Date Sat, 10 Feb 2007 01:54:05 GMT

    [ https://issues.apache.org/jira/browse/EMAIL-28?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12471894
] 

Ben Speakmon commented on EMAIL-28:
-----------------------------------

I've submitted a new patch to EMAIL-50 that fixes this issue as well.

> [email] Problems with HTML emails with attachments and embedded images
> ----------------------------------------------------------------------
>
>                 Key: EMAIL-28
>                 URL: https://issues.apache.org/jira/browse/EMAIL-28
>             Project: Commons Email
>          Issue Type: Bug
>    Affects Versions: 1.0
>         Environment: Operating System: Windows XP
> Platform: PC
>            Reporter: Phil Bretherton
>
> I have three problems that are probably related. The results are using Mozilla
> Thunderbird.
> 1. When I send an HtmlEmail with attachments, embedded images, an HTML body and
> an alternative text body both the alternative text and the HTML are displayed.
> 2. When I send an HtmlEmail with embedded images, no attachments, an HTML body
> and I do not provide an alternative text body, the HTML body is not displayed.
> 3. When I send an HtmlEmail with attachments, embedded images, an HTML body and
> I do not provide an alternative text, everything works almost fine. The only
> problem is that when the SMTP server is sending emails outside its domain it
> adds a disclaimer. The addition of this disclaimer means that only the
> disclaimer is displayed. This does not happend when using Javamail.
> Below is the class that I used for my tests.
> import java.net.MalformedURLException;
> import java.net.URL;
> import org.apache.commons.mail.EmailAttachment;
> import org.apache.commons.mail.EmailException;
> import org.apache.commons.mail.HtmlEmail;
> public class CommonsEmailTest {
> 	/**
> 	 * @param args
> 	 */
> 	public static void main(String[] args) {
> 		try {
> 			testHtmlEmailWithAttachmentsAndEmbeddedImages();
> 			testHtmlEmailWithoutAttachmentsOrText();
> 			testHtmlEmailWithAttachmentsAndEmbeddedImagesNoText();
> 		} catch (MalformedURLException e) {
> 			e.printStackTrace();
> 		} catch (EmailException e) {
> 			e.printStackTrace();
> 		}
> 	}
> 	
> 	/**
> 	 * This method sends an HTML email with attachments, embedded images,
> 	 * an HTML body and an alternative text body. The result is that both
> 	 * the HTML and the text are displayed.
> 	 * 
> 	 * @throws EmailException
> 	 * @throws MalformedURLException
> 	 */
> 	public static void testHtmlEmailWithAttachmentsAndEmbeddedImages() throws
> EmailException, MalformedURLException	{
> 		
> 		// Create the email message
> 		HtmlEmail email = new HtmlEmail();
> 		email.setHostName("smtp.capgemini.fr");
> 		email.addTo("pbrether@capgemini.fr", "You");
> 		email.setFrom("philip.bretherton@capgemini.fr", "Me");
> 		email.setSubject("Test email with inline image and attachment");
> 		
> 		// Create the attachment
> 		EmailAttachment attachment = new EmailAttachment();
> 		attachment.setPath("D:/temp/mypic.jpg");
> 		attachment.setDisposition(EmailAttachment.ATTACHMENT);
> 		attachment.setDescription("A picture");
> 		attachment.setName("Thingy");
> 		
> 		email.attach(attachment);
> 		// embed the image and get the content id
> 		URL url = new URL("http://www.apache.org/images/asf_logo_wide.gif");
> 		String cid = email.embed(url, "Apache logo");
> 		// set the html message
> 		email.setHtmlMsg("<html>The apache logo - <img src=\"cid:"+cid+"\"></html>");
> 		// set the alternative message
> 		email.setTextMsg("Your email client does not support HTML messages");
> 		// send the email
> 		email.send();		
> 	}
> 	/**
> 	 * This method sends an HTML email with embedded images,
> 	 * an HTML body and no alternative text body. The result is that both
> 	 * the HTML is not displayed.
> 	 * 
> 	 * @throws EmailException
> 	 * @throws MalformedURLException
> 	 */
> 	public static void testHtmlEmailWithoutAttachmentsOrText() throws
> EmailException, MalformedURLException	{
> 		
> 		// Create the email message
> 		HtmlEmail email = new HtmlEmail();
> 		email.setHostName("smtp.capgemini.fr");
> 		email.addTo("pbrether@capgemini.fr", "You");
> 		email.setFrom("philip.bretherton@capgemini.fr", "Me");
> 		email.setSubject("Test email with inline image and no alternative text");
> 		
> 		// embed the image and get the content id
> 		URL url = new URL("http://www.apache.org/images/asf_logo_wide.gif");
> 		String cid = email.embed(url, "Apache logo");
> 		// set the html message
> 		email.setHtmlMsg("<html>The apache logo - <img src=\"cid:"+cid+"\"></html>");
> 		// send the email
> 		email.send();		
> 	}
> 	/**
> 	 * This method sends an HTML email with attachments, embedded images,
> 	 * an HTML body and no alternative text body. The normal result is that 
> 	 * everything is displayed as expected. However, if the SMTP server
> 	 * adds a disclaimer, the disclaimer is the only thing displayed.
> 	 * 
> 	 * @throws EmailException
> 	 * @throws MalformedURLException
> 	 */
> 	public static void testHtmlEmailWithAttachmentsAndEmbeddedImagesNoText() throws
> EmailException, MalformedURLException	{
> 		
> 		// Create the email message
> 		HtmlEmail email = new HtmlEmail();
> 		email.setHostName("smtp.capgemini.fr");
> 		email.addTo("pbretherton@gmail.com", "You");
> 		email.setFrom("philip.bretherton@capgemini.fr", "Me");
> 		email.setSubject("Test email with disclaimer");
> 		
> 		// Create the attachment
> 		EmailAttachment attachment = new EmailAttachment();
> 		attachment.setPath("D:/temp/mypic.jpg");
> 		attachment.setDisposition(EmailAttachment.ATTACHMENT);
> 		attachment.setDescription("A picture");
> 		attachment.setName("Thingy");
> 		
> 		email.attach(attachment);
> 		// embed the image and get the content id
> 		URL url = new URL("http://www.apache.org/images/asf_logo_wide.gif");
> 		String cid = email.embed(url, "Apache logo");
> 		// set the html message
> 		email.setHtmlMsg("<html>The apache logo - <img src=\"cid:"+cid+"\"></html>");
> 		// send the email
> 		email.send();		
> 	}
> }

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


---------------------------------------------------------------------
To unsubscribe, e-mail: commons-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: commons-dev-help@jakarta.apache.org


Mime
View raw message