HI.

I was thinking about a hack to the "replace_with_url" function that will add a 
text/html MIME part,
but I don't feel that I have the required skills to do that in Perl without 
breaking something else.
Simply replace "text/plain" with "text/html" and then format the body
in HTML.  No perl skills required :)

OK, I have changed "mimedefang.pl" and it seems to work fine and solve the 
issue,
however I would like to ask you to review my code and tell me if you have any 
comments about it.
I did the change in a lab environment, not in production yet.

Here are the relevant changes to the file "/usr/local/bin/mimedefang.pl":

= Added a new function:  ==============================================

#*********************************************************************** # %PROCEDURE: action_replace_with_comment # %ARGUMENTS: # msg -- message # %RETURNS: # Nothing # %DESCRIPTION: # Makes a note to drop the current part and replace it with a comment # # To be used in replace_with_url, # instead of the original replace_with_warning which is plain text only. # # Written by Yizhar Hurwitz, http://yizhar.mvps.org # Version 1.0 , 13-Oct-2005 # #*********************************************************************** sub action_replace_with_comment ($) { my($msg) = @_; return 0 if (!in_filter_context("action_replace_with_comment")); $Actions{'replace_with_warning'}++; $Action = "replace"; $ReplacementEntity = MIME::Entity->build(Type => "text/html", Encoding => "-suggest", Data => [ "<html><body>\n$msg\n<\/body><\/html>\n" ]); $WarningCounter++; $ReplacementEntity->head->mime_attr("Content-Type.name" => "comment$Warning ounter.htm"); $ReplacementEntity->head->mime_attr("Content-Disposition" => "inline"); $ReplacementEntity->head->mime_attr("Content-Disposition.filename" => "comm nt$WarningCounter.htm"); return 1; }

=== And here are the changes to the existing function replace_with_url: 
=============

my($fname, $ext, $name, $url); my($htmlurl); my $extension = ""; [.................] $msg =~ s/_URL_/$htmlurl/g; action_replace_with_comment($msg); return 1;
==== And in "/etc/mail/mimedefang-filter" I have done the following  
==============

$multimedia = '(avi|mpg|mov|pps|wmv)'; if (re_match($entity, '\.' . $multimedia)) { return action_replace_with_url($entity, "/var/tmp/mail_parts", "http://10.0.0.4/mail_parts";, "multimedia file converted to URL:<p>\n_URL_\n" ); }


==============================================


So - how does it look?
Any hidden mines or overlooked potential problems?

Thanks again.
Yizhar Hurwitz
http://yizhar.mvps.org

_______________________________________________
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