MIME Alternatimve Emails

MIME Alternatimve Emails

am 30.01.2010 14:04:31 von Karl DeSaulniers

--Apple-Mail-1-934146917
Content-Transfer-Encoding: 7bit
Content-Type: text/plain;
charset=US-ASCII;
delsp=yes;
format=flowed

Hi List,
Good morning. Hope all are well on this Saturday.
I am in need of a little assistance. I am creating an HTML email.
I have created it successfully already, so I know the code works for
the HTML part.
My question is about the headers of the message.

Here is my code at the end before the message is sent off.

//other code that sets up $html and $text

if (strtoupper(substr(PHP_OS, 0, 3) == 'WIN')) {
$eol="\r\n";
} else if (strtoupper(substr(PHP_OS, 0, 3) == 'MAC')) {
$eol="\r";
} else {
$eol="\n";
}

// To send HTML mail, the Content-type header must be set
$headers = 'From: '.$from.$eol;
$headers .= 'To: "'. $username .'" <' . $email . '>'.$eol;

//$headers .= 'Cc: ' . $from;
//$headers .= 'BCc: ' . $from;
$headers .= 'Reply-To: ' . $from .$eol;

$headers .= 'X-Mailer: PHP/' . phpversion().$eol;
$headers .= 'X-sender: <' . $from . '>'.$eol;
$headers .= 'X-receiver: <' . $email . '>'.$eol;

$headers .= 'Message-ID: <'.$MessageID.'@'.$host.'>'.$eol;
$headers .= 'Date: '.$time.$eol;

// Additional headers
$headers .= 'X-Priority: 1'.$eol;
$headers .= 'X-MSMail-Priority: High'.$eol;
$headers .= 'X-MimeOLE: Generated By Design Drumm - MultiPart/Alt E-
Mail'.$eol;

$headers .= 'MIME-Version: 1.0' . $eol;
$headers .= 'Content-type: multipart/alternative';
$headers .= 'boundary="'.$boundary.'"' . $eol.$eol;

// Make sure there are no bare linefeeds in the headers
//$headers = preg_replace('#(? found this code. Can anyone tell me if it works.

$message = '--'.$boundary.$eol;
$message .= 'Content-type: text/html; charset="UTF-8"'.$eol;
$message .= 'Content-Transfer-Encoding: 8bit'.$eol.$eol;
$message .= $html.$eol.$eol;

$message .= '--'.$boundary.$eol;
$message .= 'Content-type: text/plain; charset="UTF-8"'.$eol;
$message .= 'Content-Transfer-Encoding: quoted-printable'.$eol.$eol;

$message .= $text.$eol.$eol;
$message .= '--'.$boundary.'--'.$eol.$eol;

return mail($email, $subject, $message, $headers);

}

My question is what order should the headers be in from top to bottom
that I have to work properly?
Currently it does not display the HTML on MAC but it does in Hotmail.
MAC mail is grabbing the text version.
So my susspicion is that the headers are just wrong.

It has worked on MAC mail before I tried the MIME boundaries.

TIA,


Karl DeSaulniers
Design Drumm
http://designdrumm.com


--Apple-Mail-1-934146917--

Re: MIME Alternatimve Emails

am 30.01.2010 14:13:45 von Richard Quadling

On 30 January 2010 13:04, Karl DeSaulniers wrote:
> Hi List,
> Good morning. Hope all are well on this Saturday.
> I am in  need of a little assistance. I am creating an HTML email.
> I have created it successfully already, so I know the code works for the
> HTML part.
> My question is about the headers of the message.
>
> Here is my code at the end before the message is sent off.
>
> //other code  that sets up $html and $text
>
> if (strtoupper(substr(PHP_OS, 0, 3) == 'WIN')) {
>          $eol=3D"\r\n";
>        } else if (strtoupper(substr(PHP_OS, 0, 3) =3D=
=3D 'MAC')) {
>         $eol=3D"\r";
>        } else {
>          $eol=3D"\n";
> }
>
> // To send HTML mail, the Content-type header must be set
> $headers =3D 'From: '.$from.$eol;
> $headers .=3D 'To: "'. $username .'" <' . $email . '>'.$eol;
>
> //$headers .=3D 'Cc: ' . $from;
> //$headers .=3D 'BCc: ' . $from;
> $headers .=3D 'Reply-To: ' . $from .$eol;
>
> $headers .=3D 'X-Mailer: PHP/' . phpversion().$eol;
> $headers .=3D 'X-sender: <' . $from . '>'.$eol;
> $headers .=3D 'X-receiver: <' . $email . '>'.$eol;
>
> $headers .=3D 'Message-ID: <'.$MessageID.'@'.$host.'>'.$eol;
> $headers .=3D 'Date: '.$time.$eol;
>
> // Additional headers
> $headers .=3D 'X-Priority: 1'.$eol;
> $headers .=3D 'X-MSMail-Priority: High'.$eol;
> $headers .=3D 'X-MimeOLE: Generated By Design Drumm - MultiPart/Alt
> E-Mail'.$eol;
>
> $headers .=3D 'MIME-Version: 1.0' . $eol;
> $headers .=3D 'Content-type: multipart/alternative';
> $headers .=3D 'boundary=3D"'.$boundary.'"' . $eol.$eol;
>
> // Make sure there are no bare linefeeds in the headers
> //$headers =3D preg_replace('#(? I found
> this code. Can anyone tell me if it works.
>
> $message =3D '--'.$boundary.$eol;
> $message .=3D 'Content-type: text/html; charset=3D"UTF-8"'.$eol;
> $message .=3D 'Content-Transfer-Encoding: 8bit'.$eol.$eol;
> $message .=3D $html.$eol.$eol;
>
> $message .=3D '--'.$boundary.$eol;
> $message .=3D 'Content-type: text/plain; charset=3D"UTF-8"'.$eol;
> $message .=3D 'Content-Transfer-Encoding: quoted-printable'.$eol.$eol;
>
> $message .=3D $text.$eol.$eol;
> $message .=3D '--'.$boundary.'--'.$eol.$eol;
>
> return mail($email, $subject, $message, $headers);
>
>   }
>
> My question is what order should the headers be in from top to bottom tha=
t I
> have to work properly?
> Currently it does not display the HTML on MAC but it does in Hotmail. MAC
> mail is grabbing the text version.
> So my susspicion is that the headers are just wrong.
>
> It has worked on MAC mail before I tried the MIME boundaries.
>
> TIA,
>
>
> Karl DeSaulniers
> Design Drumm
> http://designdrumm.com
>
>

I would simplify all of this by using a PHP class specifically
covering this issue.

I use the html_mime_mail5 class from phpguru.org (now called RMail) at
http://www.phpguru.org/static/Rmail

Though, you'll probably find PHPMailer is the most commonly used class
at http://phpmailer.worxware.com/

--=20
-----
Richard Quadling
"Standing on the shoulders of some very clever giants!"
EE : http://www.experts-exchange.com/M_248814.html
EE4Free : http://www.experts-exchange.com/becomeAnExpert.jsp
Zend Certified Engineer : http://zend.com/zce.php?c=3DZEND002498&r=3D213474=
731
ZOPA : http://uk.zopa.com/member/RQuadling

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

Re: MIME Alternatimve Emails

am 30.01.2010 14:23:26 von Karl DeSaulniers

--Apple-Mail-3-935281752
Content-Transfer-Encoding: 7bit
Content-Type: text/plain;
charset=US-ASCII;
delsp=yes;
format=flowed

Thanks Richard for your response,
Since the code is a little long, I didn't want to post too much, so
I just put the last part with the headers I was using.
also, since the mailer worked previously,
I was thinking it was just the new header info I was plugging in
so to do the whole checking if a user can receive HTML emails or text.

Any thoughts on what order I should be putting the headers I have?
TIA,

Karl


On Jan 30, 2010, at 7:13 AM, Richard Quadling wrote:

> On 30 January 2010 13:04, Karl DeSaulniers
> wrote:
>> Hi List,
>> Good morning. Hope all are well on this Saturday.
>> I am in need of a little assistance. I am creating an HTML email.
>> I have created it successfully already, so I know the code works
>> for the
>> HTML part.
>> My question is about the headers of the message.
>>
>> Here is my code at the end before the message is sent off.
>>
>> //other code that sets up $html and $text
>>
>> if (strtoupper(substr(PHP_OS, 0, 3) == 'WIN')) {
>> $eol="\r\n";
>> } else if (strtoupper(substr(PHP_OS, 0, 3) == 'MAC')) {
>> $eol="\r";
>> } else {
>> $eol="\n";
>> }
>>
>> // To send HTML mail, the Content-type header must be set
>> $headers = 'From: '.$from.$eol;
>> $headers .= 'To: "'. $username .'" <' . $email . '>'.$eol;
>>
>> //$headers .= 'Cc: ' . $from;
>> //$headers .= 'BCc: ' . $from;
>> $headers .= 'Reply-To: ' . $from .$eol;
>>
>> $headers .= 'X-Mailer: PHP/' . phpversion().$eol;
>> $headers .= 'X-sender: <' . $from . '>'.$eol;
>> $headers .= 'X-receiver: <' . $email . '>'.$eol;
>>
>> $headers .= 'Message-ID: <'.$MessageID.'@'.$host.'>'.$eol;
>> $headers .= 'Date: '.$time.$eol;
>>
>> // Additional headers
>> $headers .= 'X-Priority: 1'.$eol;
>> $headers .= 'X-MSMail-Priority: High'.$eol;
>> $headers .= 'X-MimeOLE: Generated By Design Drumm - MultiPart/Alt
>> E-Mail'.$eol;
>>
>> $headers .= 'MIME-Version: 1.0' . $eol;
>> $headers .= 'Content-type: multipart/alternative';
>> $headers .= 'boundary="'.$boundary.'"' . $eol.$eol;
>>
>> // Make sure there are no bare linefeeds in the headers
>> //$headers = preg_replace('#(? >> I found
>> this code. Can anyone tell me if it works.
>>
>> $message = '--'.$boundary.$eol;
>> $message .= 'Content-type: text/html; charset="UTF-8"'.$eol;
>> $message .= 'Content-Transfer-Encoding: 8bit'.$eol.$eol;
>> $message .= $html.$eol.$eol;
>>
>> $message .= '--'.$boundary.$eol;
>> $message .= 'Content-type: text/plain; charset="UTF-8"'.$eol;
>> $message .= 'Content-Transfer-Encoding: quoted-printable'.$eol.$eol;
>>
>> $message .= $text.$eol.$eol;
>> $message .= '--'.$boundary.'--'.$eol.$eol;
>>
>> return mail($email, $subject, $message, $headers);
>>
>> }
>>
>> My question is what order should the headers be in from top to
>> bottom that I
>> have to work properly?
>> Currently it does not display the HTML on MAC but it does in
>> Hotmail. MAC
>> mail is grabbing the text version.
>> So my susspicion is that the headers are just wrong.
>>
>> It has worked on MAC mail before I tried the MIME boundaries.
>>
>> TIA,
>>
>>
>> Karl DeSaulniers
>> Design Drumm
>> http://designdrumm.com
>>
>>
>
> I would simplify all of this by using a PHP class specifically
> covering this issue.
>
> I use the html_mime_mail5 class from phpguru.org (now called RMail) at
> http://www.phpguru.org/static/Rmail
>
> Though, you'll probably find PHPMailer is the most commonly used class
> at http://phpmailer.worxware.com/
>
> --
> -----
> Richard Quadling
> "Standing on the shoulders of some very clever giants!"
> EE : http://www.experts-exchange.com/M_248814.html
> EE4Free : http://www.experts-exchange.com/becomeAnExpert.jsp
> Zend Certified Engineer : http://zend.com/zce.php?
> c=ZEND002498&r=213474731
> ZOPA : http://uk.zopa.com/member/RQuadling
>
> --
> PHP Database Mailing List (http://www.php.net/)
> To unsubscribe, visit: http://www.php.net/unsub.php
>

Karl DeSaulniers
Design Drumm
http://designdrumm.com


--Apple-Mail-3-935281752--

Re: MIME Alternatimve Emails

am 30.01.2010 14:32:32 von Richard Quadling

On 30 January 2010 13:23, Karl DeSaulniers wrote:
> Thanks Richard for your response,
> Since the code is a little long, I didn't want to post too much, so
> I just put the last part with the headers I was using.
> also, since the mailer worked previously,
> I was thinking it was just the new header info I was plugging in
> so to do the whole checking if a user can receive HTML emails or text.
>
> Any thoughts on what order I should be putting the headers I have?
> TIA,
>
> Karl
>
>
> On Jan 30, 2010, at 7:13 AM, Richard Quadling wrote:
>
>> On 30 January 2010 13:04, Karl DeSaulniers wrote:
>>>
>>> Hi List,
>>> Good morning. Hope all are well on this Saturday.
>>> I am in  need of a little assistance. I am creating an HTML email.
>>> I have created it successfully already, so I know the code works for th=
e
>>> HTML part.
>>> My question is about the headers of the message.
>>>
>>> Here is my code at the end before the message is sent off.
>>>
>>> //other code  that sets up $html and $text
>>>
>>> if (strtoupper(substr(PHP_OS, 0, 3) == 'WIN')) {
>>>         $eol=3D"\r\n";
>>>       } else if (strtoupper(substr(PHP_OS, 0, 3) == =
'MAC')) {
>>>        $eol=3D"\r";
>>>       } else {
>>>         $eol=3D"\n";
>>> }
>>>
>>> // To send HTML mail, the Content-type header must be set
>>> $headers =3D 'From: '.$from.$eol;
>>> $headers .=3D 'To: "'. $username .'" <' . $email . '>'.$eol;
>>>
>>> //$headers .=3D 'Cc: ' . $from;
>>> //$headers .=3D 'BCc: ' . $from;
>>> $headers .=3D 'Reply-To: ' . $from .$eol;
>>>
>>> $headers .=3D 'X-Mailer: PHP/' . phpversion().$eol;
>>> $headers .=3D 'X-sender: <' . $from . '>'.$eol;
>>> $headers .=3D 'X-receiver: <' . $email . '>'.$eol;
>>>
>>> $headers .=3D 'Message-ID: <'.$MessageID.'@'.$host.'>'.$eol;
>>> $headers .=3D 'Date: '.$time.$eol;
>>>
>>> // Additional headers
>>> $headers .=3D 'X-Priority: 1'.$eol;
>>> $headers .=3D 'X-MSMail-Priority: High'.$eol;
>>> $headers .=3D 'X-MimeOLE: Generated By Design Drumm - MultiPart/Alt
>>> E-Mail'.$eol;
>>>
>>> $headers .=3D 'MIME-Version: 1.0' . $eol;
>>> $headers .=3D 'Content-type: multipart/alternative';
>>> $headers .=3D 'boundary=3D"'.$boundary.'"' . $eol.$eol;
>>>
>>> // Make sure there are no bare linefeeds in the headers
>>> //$headers =3D preg_replace('#(? //I found
>>> this code. Can anyone tell me if it works.
>>>
>>> $message =3D '--'.$boundary.$eol;
>>> $message .=3D 'Content-type: text/html; charset=3D"UTF-8"'.$eol;
>>> $message .=3D 'Content-Transfer-Encoding: 8bit'.$eol.$eol;
>>> $message .=3D $html.$eol.$eol;
>>>
>>> $message .=3D '--'.$boundary.$eol;
>>> $message .=3D 'Content-type: text/plain; charset=3D"UTF-8"'.$eol;
>>> $message .=3D 'Content-Transfer-Encoding: quoted-printable'.$eol.$eol;
>>>
>>> $message .=3D $text.$eol.$eol;
>>> $message .=3D '--'.$boundary.'--'.$eol.$eol;
>>>
>>> return mail($email, $subject, $message, $headers);
>>>
>>>  }
>>>
>>> My question is what order should the headers be in from top to bottom
>>> that I
>>> have to work properly?
>>> Currently it does not display the HTML on MAC but it does in Hotmail. M=
AC
>>> mail is grabbing the text version.
>>> So my susspicion is that the headers are just wrong.
>>>
>>> It has worked on MAC mail before I tried the MIME boundaries.
>>>
>>> TIA,
>>>
>>>
>>> Karl DeSaulniers
>>> Design Drumm
>>> http://designdrumm.com
>>>
>>>
>>
>> I would simplify all of this by using a PHP class specifically
>> covering this issue.
>>
>> I use the html_mime_mail5 class from phpguru.org (now called RMail) at
>> http://www.phpguru.org/static/Rmail
>>
>> Though, you'll probably find PHPMailer is the most commonly used class
>> at http://phpmailer.worxware.com/
>>
>> --
>> -----
>> Richard Quadling
>> "Standing on the shoulders of some very clever giants!"
>> EE : http://www.experts-exchange.com/M_248814.html
>> EE4Free : http://www.experts-exchange.com/becomeAnExpert.jsp
>> Zend Certified Engineer : http://zend.com/zce.php?c=3DZEND002498&r=3D213=
474731
>> ZOPA : http://uk.zopa.com/member/RQuadling
>>
>> --
>> PHP Database Mailing List (http://www.php.net/)
>> To unsubscribe, visit: http://www.php.net/unsub.php
>>
>
> Karl DeSaulniers
> Design Drumm
> http://designdrumm.com
>
>

I use RMail. With that ...

$RMail->addText($TextMessage);
$RMail->addHTML($HTMLMessage, $DirForImages);

That's it.

If the client can only read text, it will show the text. Otherwise it
will show the HTML.

The alternative headers are all taken care of by the class.
--=20
-----
Richard Quadling
"Standing on the shoulders of some very clever giants!"
EE : http://www.experts-exchange.com/M_248814.html
EE4Free : http://www.experts-exchange.com/becomeAnExpert.jsp
Zend Certified Engineer : http://zend.com/zce.php?c=3DZEND002498&r=3D213474=
731
ZOPA : http://uk.zopa.com/member/RQuadling

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