You are viewing a plain text version of this content. The canonical link for it is here.
Posted to server-user@james.apache.org by Carl Vorster <cc...@propartners.co.za> on 2007/10/26 17:41:52 UTC

Access to attachment from Mailet

Hi,

Is it possible to access/process a mail attachment from a mailet, I can't
seem to find anything to point me in the right direction.

Thanks in advance

Carl 



---------------------------------------------------------------------
To unsubscribe, e-mail: server-user-unsubscribe@james.apache.org
For additional commands, e-mail: server-user-help@james.apache.org


Re: Access to attachment from Mailet

Posted by Bud Bach <ww...@ameritech.net>.
I notice the link in the code is bad.  It needs a "html" after the dot:

http://java.sun.com/developer/onlineTraining/JavaMail/contents.html#GettingAttachments

Bud Bach wrote:
> Carl, Here is some code from the service() routine of a mailet I use 
> to grab jpg's from attachments:
>
>         // Loop through the attachments
>         //
>         // Have a look at:
>         // 
> http://java.sun.com/developer/onlineTraining/JavaMail/contents.#GettingAttachments 
>
>         // for some tips on saving attachements.
>         //
>
>         try {
>             MimeMessage msg = (MimeMessage) mail.getMessage();
>             Multipart mp = (Multipart) msg.getContent();
>             boolean imageFound = false;
>             for (int j = 0, n = mp.getCount(); j < n; j++) {
>                 Part part = mp.getBodyPart(j);
>
>                 String disposition = part.getDisposition();
>                 String contentType = part.getContentType();
>
>                 log("Content Type = " + contentType + " Disposition = "
>                         + disposition);
>
>                 if (contentType.startsWith("image/jpeg")) {
>                     imageFound = true;
>                     saveImage(user, part);
>                 }
>             }
>             if (imageFound) {
>                 sendImageReceived(recipient, sender, user);
>                
>             } else {
>                 sendImageNotReceived(recipient, sender, user);
>             }
>         } catch (Exception e) {
>             log("Error: ", e);
>         }
>
>
> Hope this helps.  -- Bud
>
>
> Carl Vorster wrote:
>> Hi,
>>
>> Is it possible to access/process a mail attachment from a mailet, I 
>> can't
>> seem to find anything to point me in the right direction.
>>
>> Thanks in advance
>>
>> Carl
>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: server-user-unsubscribe@james.apache.org
>> For additional commands, e-mail: server-user-help@james.apache.org
>>
>>
>>   
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: server-user-unsubscribe@james.apache.org
> For additional commands, e-mail: server-user-help@james.apache.org
>
>


---------------------------------------------------------------------
To unsubscribe, e-mail: server-user-unsubscribe@james.apache.org
For additional commands, e-mail: server-user-help@james.apache.org


Re: Access to attachment from Mailet

Posted by Bud Bach <ww...@ameritech.net>.
Carl, Here is some code from the service() routine of a mailet I use to 
grab jpg's from attachments:

		// Loop through the attachments
		//
		// Have a look at:
		// http://java.sun.com/developer/onlineTraining/JavaMail/contents.#GettingAttachments
		// for some tips on saving attachements.
		//

		try {
			MimeMessage msg = (MimeMessage) mail.getMessage();
			Multipart mp = (Multipart) msg.getContent();
			boolean imageFound = false;
			for (int j = 0, n = mp.getCount(); j < n; j++) {
				Part part = mp.getBodyPart(j);

				String disposition = part.getDisposition();
				String contentType = part.getContentType();

				log("Content Type = " + contentType + " Disposition = "
						+ disposition);

				if (contentType.startsWith("image/jpeg")) {
					imageFound = true;
					saveImage(user, part);
				}
			}
			if (imageFound) {
				sendImageReceived(recipient, sender, user);
				
			} else {
				sendImageNotReceived(recipient, sender, user);
			}
		} catch (Exception e) {
			log("Error: ", e);
		}


Hope this helps.  -- Bud


Carl Vorster wrote:
> Hi,
>
> Is it possible to access/process a mail attachment from a mailet, I can't
> seem to find anything to point me in the right direction.
>
> Thanks in advance
>
> Carl 
>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: server-user-unsubscribe@james.apache.org
> For additional commands, e-mail: server-user-help@james.apache.org
>
>
>   


---------------------------------------------------------------------
To unsubscribe, e-mail: server-user-unsubscribe@james.apache.org
For additional commands, e-mail: server-user-help@james.apache.org


Re: Access to attachment from Mailet

Posted by Sandeep Chandur Ravi <sa...@kirusa.com>.
Hi Carl,

Yes, it is possible to process a mail attachment from within a mailet.

For example, in your matcher, you can check if your message content is 
an instance of MimeMultipart (assuming the incoming email is multipart 
MIME encoded), and use the javax.mail.internet.MimeBodyPart to check the 
type of attachment (using its getContentType()). Then in your mailet, 
you can do a similar thing and process the attachment as desired.

Example code for matcher:

public Collection match(Mail mail) throws MessagingException {
  if(mail.getMessage().getContent() instanceof MimeMultipart) {
    MimeMultipart multipart = (MimeMultipart) 
mail.getMessage().getContent();
   
    // extract the MimeBodyParts and check for content type if required.
  }

  // if your desired condition is satisfied
  return mail.getRecipients();
}

Hope this helps.

Cheers,
Sandeep
--
http://sandeep.weblogs.us/

Carl Vorster wrote:
> Hi,
>
> Is it possible to access/process a mail attachment from a mailet, I can't
> seem to find anything to point me in the right direction.
>
> Thanks in advance
>
> Carl 
>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: server-user-unsubscribe@james.apache.org
> For additional commands, e-mail: server-user-help@james.apache.org
>
>
>   


---------------------------------------------------------------------
To unsubscribe, e-mail: server-user-unsubscribe@james.apache.org
For additional commands, e-mail: server-user-help@james.apache.org