On April 20, 1999 at 12:51, someone wrote:
> I'm implementing a web based mail server for our internal mail server,
> so that people from outside our organisation are able to access internal
> mails.
> For this I've designed a program which calls POP3 functions at the back
> end. Everything is working fine except for attachment handling.
> So, for this I want to make use of MHonArc utility.
> I went through the code but as it includes numerous modules, its
> becoming difficult for me to pick out the exact code which handles
> just attachments. So, I'ld like your help in this regard.
> To be specific, I just need to know the modules which take a mail body
> and parse the attachments (if any are there), and give back the result
> in html form.
There are several files responsible for converting a message into
HTML. readmail.pl has the core mail parsing routines and then there
are few other libraries for handling the conversion of various
content-types into HTML. The MIMEFILTERS resource page lists the
various filter functions.
Note, if all you require is the conversion into HTML functionality,
you can use mhonarc in -single mode. Example:
mhonarc -single mesg.822 > mesg.html
cat mesg.822 | mhonarc -single > mesg.html
You can also embed -single capability into a Perl program. The
best way depends on your requirements, but the following is a
sample:
require 'mhamain.pl' || die qq/ERROR: Unable to require "mhamain.pl"\n/;
mhonarc::initialize(); # only need to call once
if (!mhonarc::process_input('-single')) {
## An error occured. $mhonarc::ERROR contains the error message
## and $mhonarc::CODE contains the status code. When there is
## an error it is non-zero and suitable as an argument to exit().
}
The mhonarc::process_input() function takes argument just like the
command-line options. If you want to specify an input file (ie.
do not use standard input) then do something like the following:
mhonarc::process_input('-single', 'mesg.822');
If input is coming from a filehandle, you can do the following trick:
open(STDIN, "<&INFILE") || die "Unable to dup filehandle: $!";
mhonarc::process_input('-single');
die $mhonarc::ERROR if $mhonarc::CODE;
If no arguments are passed to mhonarc::process_input(), then
@ARGV is parsed.
--ewh
----
Earl Hood | University of California: Irvine
[EMAIL PROTECTED] | Electronic Loiterer
http://www.oac.uci.edu/indiv/ehood/ | Dabbler of SGML/WWW/Perl/MIME