I see 3 problems with your final output (though there still could be more)

1) Each header has to end in \r\n, \n usually works but it's supposed to be
\r\n

2) This:
$headers .="Content-Type: multipart/alternative;
boundary=\"--i0o9u8h7g65v\"";

should be this:
$headers .="Content-Type: multipart/alternative;
boundary=\"--i0o9u8h7g65v\"";

or this:
$headers .="Content-Type: multipart/alternative;
  boundary=\"--i0o9u8h7g65v\"";

A header can continue on the next line for readability, but it has to start
with whitespace (space or a tab), otherwise it trys to create the boundary
as a new header.

3) The final boundary must end in -- as well as start with it
so:
$message .="--i0o9u8h7g65v";

should be

$message .="--i0o9u8h7g65v--";

Chris


-----Original Message-----
From: Bill Green [mailto:[EMAIL PROTECTED]
Sent: Tuesday, December 16, 2003 8:19 AM
To: [EMAIL PROTECTED]
Subject: [PHP] mail question (mime)


Greetings all. (hope this isn't a second post, first try seemed to fail)

In an effort to understand more about mime mail, I'm writing a
little function to send a multipart/alternative encoded mime mail from a
browser interface. I know you guys have answered these types of questions
many times, but I've googled and research til I'm blue. I'm still somewhat
new to php so I apologize. I'm on a shared hosting environment running
Apache 1.3.29 (Unix), magic_quotes_gpc = on, path to sendmail =
/usr/sbin/sendmail -t -i, smtp is localhost on port 25 (and I don't know
much about Unix permissions). My client platform is Mac, my email client is
Outlook Express (might as well be testing to the lowest common denominator).
I've found lots of php classes on mime mail but have not tried them because
I want to understand the code.

I can use this code to send plain text email or html email just fine, but
not multipart/alternative or mixed. Here's the relevant code. Can someone
point out the error of my ways?

browser interface: 5 fields (3 input of type=text, 2 input of type=textarea)
names:
    $from
    $to
    $subject
    $text_msg
    $html_msg

On submit, I trim all and stripslashes on the textarea inputs (interesting
that magic quotes seems to add slashes to textarea inputs automatically),
then set my email headers:

$headers ="From: {$from}\n";
$headers .="Reply-To: {$from}\n";
$headers .="Return-Path: {$from}\n";
$headers .="Subject: {$subject}\n";
$headers .="X-Sender: {$from}\n";
$headers .="X-Mailer: PHP\n";
$headers .="X-MSMail-Priority: High\n";
$headers .="MIME-Version: 1.0\n";
$headers .="Content-Type: multipart/alternative;
boundary=\"--i0o9u8h7g65v\"";
$message ="--i0o9u8h7g65v\n";
$message .="Content-Type: text/plain; charset=iso-8859-1\n";
$message .="Content-Transfer-Encoding: 7bit\n";
$message .="Content-Disposition: inline\n";
$message .=$text_msg."\n";//plain text message here
$message .="--i0o9u8h7g65v\n";
$message .="Content-Type: text/html; charset=iso-8859-1\n";
$message .="Content-Transfer-Encoding: 7bit\n";
$message .="Content-Disposition: inline\n";
$message .=$html_msg."\n";//html message here
$message .="--i0o9u8h7g65v";

mail($to,$subject,$message,$headers);

The email is sent successfully, but with no message in the message body.
Looking at the message source I see that all of the headers are set and I
see the boundaries and I see both versions of the messages as one would
expect. It all looks correct, even as compared to other mime encoded email I
receive and read just fine. I've tried many variations on these variables.
FYI, if I change the $header = "Content-Type: multipart/alternative; ....";
to $message = "Content-Type: ..."; then I see the raw code in the message
body, but of course that does no good. Same results when message is viewed
in a browser based hotmail or yahoo account.

I simply do not understand what I don't understand, so I don't know how to
ask my question. Is this a coding problem, sendmail, permissions, a server
issue???

Thanks for your help.


--
Bill
--

--
Bill
--

--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to