Re: Tweeking a sendmail routine.
[email protected] ("Wiggins d'Anconia")
| Newsgroups | perl.beginners.cgi |
|---|---|
| Organization | http://danconia.org |
| Message-ID | <[email protected]> |
Greg Schiedler wrote: > I know enough Perl to be dangerous! > > I have a form that sends out several different confirmations depending on > who the receipient is. > > One particular E-mail I need to be in html format so I can put it into a > specific format. I added a couple of lines to the sendmail routine I was > using and it fixed my E-mail problem but created a problem with my fax > gateway copy. > > #1 gets sent the Joe Enduser plain E-mail(Can be html my tweek forced html) > #2 gets sent to the Office HTML Format. > #3 Fax gateway (Plain E-mail). > > Fax gateway is in the US Telephone format ie. [email protected] > > I thought about adding an if statment but it looks like if I added an > if/else to my tweeked else statement the receipient info has already been > sent.... > > Greg :-) > Best suggestion would be to switch to using a module. MIME::Lite for instance but there a lot that will work. Check CPAN. Mail while it seems simple is incredibly complex, re-inventing the wheel, especially with such strict requirements is going to be time consuming. http://danconia.org > > file: sendmail.pl > <snip> > # Give the server the message header > > print SMTP "DATA$CRLF"; > sysread(SMTP, $_, 1024); > if (!/[^0-9]*354/) { $Error_Message = $_; return(6) } > print SMTP "To: @to$CRLF"; > print SMTP "From: $from$CRLF"; > print SMTP "CC: @cc$CRLF" if $cc; > print SMTP "Subject: $subject$CRLF"; > > # If there are mime files to attach, we need special headers. > > if ($mime_id) { > print SMTP "x-sender: $from$CRLF"; > print SMTP "x-mailer: CGI/Perl Cookbook$CRLF"; > print SMTP "Mime-Version: 1.0$CRLF"; > print SMTP "Content-Type: multipart/mixed; > boundary=\"$mime_id\"$CRLF$CRLF"; > print SMTP "--$mime_id$CRLF"; > print SMTP "Content-Type: text/plain; > charset=\"US-ASCII\"$CRLF$CRLF"; > } > # Greg @ Limo.Net 01/24/2007 > # Added two header lines for force HTML output. > # else { print SMTP $CRLF } > # > else { > print SMTP "Mime-Version: 1.0$CRLF"; > print SMTP "Content-Type: text/html; > charset=\"ISO-8859-1\"$CRLF$CRLF"; > } > # End Greg @ Limo.Net 01/24/2007 > > # Output the message body. > > if ($body) { > if (!($body =~ /^[\\\/:]/) && ($body =~ /\s/)) { print SMTP $body } > elsif (-e $body && -T $body) { &parse_template($body, *SMTP) } > } > print SMTP $CRLF; > > # Attach each file. > > for ($i = 0; $i < @ATTACH_FILES; ++$i) { > $attach_file = $ATTACH_FILES[$i]; > $encoding = $ENCODING[$i]; > > # Split the filename by directories. / for unix, \ for dos, : for > mac > </snip> > > > Scanned for Virus by http://Barracuda.Limo.Net >