Adding a "Has Attachment" header

Drew Morris drew at
Thu Jan 27 14:19:37 GMT 2011

Hi All...

I am working on a custom delivery script that is used after MailScanner has already run. The script uses many of the headers that MailScanner and Spamassassin insert to determing proper delivery (think procmail).

I have the need to determine whether a message has attachments or if it is just simply text and html body parts without any attachments.

I can use code like this to do it I believe:

if ( $msg->isMultipart ) {
    foreach my $part ( $msg->parts ) {
        if ( $part->contentType eq 'text/html' ) {
           # and do a count because more than 1 means 1 is an attachment
        elsif ( $part->contentType eq 'text/plain' ) {
           # and do a count because more than 1 means 1 is an attachment
        else {
           # Means there are attachments right?

But it seems like an unneccessarily heavy approach since MailScanner has already parsed and analyzed the message prior to this step. The ideal solution for me would be to have a configuration line MailScanner.conf that would allow me to turn on "AddAttachmentsCheckToHeader" or something like that and MailScanner could add a header like: X-MailScanner-HasAttachments: Yes or something similar. I don't think this would take much to do and I don't think it would require much (if any) additional overhead for MailScanners processing since it already has the message parsed.

Something like this would be very useful to a number of applications that custom deliver mail based on different attributes that they need to parse from the header so I don't think this is just something that would benefit my use-case.

Any thoughts would be greatly appreciated and if there is already a way to do this that I am just missing... please let me know. 


-------------- next part --------------
An HTML attachment was scrubbed...

More information about the MailScanner mailing list