Issue: Mimedefang is dropping ms-tnef (winmail.dat) without scanning and extracting the attachments. I have verified and am working with my client that there is an attachment.

mail.info : Jun 6 15:38:11 smtp1 mimedefang.pl[21064]: ytnef didn't find any attachments, but we are dropping the winmail.dat mime part anyway

Below is the code snippets where I believe the error lies. Can anyone help point me to why it will not extract and only drops it? Code Wrong or needs updated?

# if this is a application/ms-tnef message then extract and delete it
    if (lc($type) eq "application/ms-tnef") {
        @tnef_files = extract_tnef( $entity );
        my $tnef_file_qty = @tnef_files;
        if( $tnef_file_qty > 0 ){
md_syslog( 'info', "ytnef extracted some files so we are now dropping the winmail.dat mime part" );
        } else {
md_syslog( 'info', "ytnef didn't find any attachments, but we are dropping the winmail.dat mime part anyway" );
        }
        return action_drop();
    }

# add the tnef files to the message
    foreach my $fname ( @tnef_files ) {
        local($/) = undef;
        open(FILE, "$fname");
        my $file = <FILE>;
        close(FILE);
        $file =~ s:^.*[\\/]::;
action_add_part($entity, "application/octet-stream", "base64", $file, $fname, "attachment"); md_syslog('info', "Added file $fname to message because it was extracted from the winmail.dat");
    }

    @tnef_files = ();

# sub routine..
sub extract_tnef( $ ) {

  my ( $entity ) = @_;
  my ( $body ) = $entity->bodyhandle;
  my @tnef_files = ();

  if( ! defined( $body ) ){
    return @tnef_files;
  }

  # Get filename
  my ( $path ) = $body->path;
  if( ! defined( $path ) ){
    return @tnef_files;
  }

  @new_files = `/usr/bin/ytnef -f Work $path`;

  foreach my $file ( @new_files ){
    chomp( $file );
    push( @tnef_files, $file );
    md_syslog( 'info', "Found file $file in winmail.dat attachment" );
  }

  return @tnef_files;

}

_______________________________________________
NOTE: If there is a disclaimer or other legal boilerplate in the above
message, it is NULL AND VOID.  You may ignore it.

Visit http://www.mimedefang.org and http://www.roaringpenguin.com
MIMEDefang mailing list [email protected]
http://lists.roaringpenguin.com/mailman/listinfo/mimedefang

Reply via email to