Welcome to dbForumz.com!
FAQFAQ    SearchSearch      ProfileProfile    Private MessagesPrivate Messages   Log inLog in

HTML Mail

 
   Database Forums (Home) -> PHP RSS
Next:  question about php installation  
Author Message
J Huntley Palmer

External


Since: May 08, 2006
Posts: 5



(Msg. 1) Posted: Fri May 12, 2006 12:44 am
Post subject: HTML Mail
Archived from groups: comp>lang>php, others (more info?)

How may I setup a proper HTML mail message with embedded href links
using PHP, that follows all the MIME rules? Any examples or links would
be appreciated.

Thanks!

 >> Stay informed about: HTML Mail 
Back to top
Login to vote
robert

External


Since: Apr 21, 2006
Posts: 16



(Msg. 2) Posted: Fri May 12, 2006 10:27 am
Post subject: Re: HTML Mail [Login to view extended thread Info.]
Archived from groups: per prev. post (more info?)

"J Huntley Palmer" wrote in message

| How may I setup a proper HTML mail message with embedded href links
| using PHP, that follows all the MIME rules? Any examples or links would
| be appreciated.

many will post links to full-featured php mailer classes...they tend to be
over-blown. here's what i use...if you understand the rfc, modifying the
code below is easily done so that this can handle attachements as well.
actually, this already has an attachement in it...you would use the same
methodology as seen when a logo is added to the below.

hth,

me


======== email.class.php (php 5)

// $dropDirectory w/b like 'c:/inetpub/mailroot/pickup/' for iis on windows
// anywhere you'd like for unix
// $exec w/b if php shelled out to sendmail, qmail, or whatever.

<?
class email
{
static function send(
$to ,
$from ,
$cc = '' ,
$bcc = '' ,
$subject ,
$text ,
$html = '' ,
$companyName = '' ,
$logo = null ,
$dropDirectory = '' ,
$exec = null
)
{
// prevent email injection hacks
$subject = preg_replace("/\nfrom\:.*?\n/i" , "", $subject);
$subject = preg_replace("/\nbcc\:.*?\n/i" , "", $subject);
$subject = preg_replace("/\ncc\:.*?\n/i" , "", $subject);
$text = preg_replace("/\nfrom\:.*?\n/i" , "", $text);
$text = preg_replace("/\nbcc\:.*?\n/i" , "", $text);
$text = preg_replace("/\ncc\:.*?\n/i" , "", $text);
$html = preg_replace("/\nfrom\:.*?\n/i" , "", $html);
$html = preg_replace("/\nbcc\:.*?\n/i" , "", $html);
$html = preg_replace("/\ncc\:.*?\n/i" , "", $html);
//
$messageHtml = $html;
$html = '
<html>
<style>
body
{
background-color : #FFFFFF;
color : black;
font-family : verdana, tahoma, arial, times new
roman, sans-serif;
font-size : 8pt;
padding : 2px;
text-align : left;
}
hr
{
background-color : lightsteelblue;
border : 0px;
color : lightsteelblue;
height : 1px;
}
table
{
border-collapse : collapse;
border-padding : 2px;
border-width : 0px;
border-spacing : 0px;
width : 700px;
}
td
{
background-color : #FFFFFF;
color : black;
font-family : verdana, tahoma, arial,
"times new roman", sans-serif;
font-size : 8pt;
margin : 5px;
padding-left : 5px;
padding-right : 5px;
spacing : 0px;
text-align : left;
vertical-align : top;
}
th
{
background-color : lavender;
color : black;
font-family : verdana, tahoma, arial,
"times new roman", sans-serif;
font-size : 8pt;
font-weight : bold;
margin : 5px;
text-align : left;
}
</style>
<body>
';
if (isset($logo))
{
$file = @fopen($logo, 'r');
$image = @fread($file, filesize($logo));
$image = @chunk_split(base64_encode($image));
@fclose($file);
unset($file);
$html .= '
<img alt="' . $companyName . '" border="0px"
src="cid:logo" style="float:right;">
<br>
<br>
<br>
<br clear="all">
';
}
if ($messageHtml == ''){ $messageHtml = $text; }
$html .= $messageHtml . '</body></html>';
$boundry = '----=' . md5(uniqid(rand()));
$related = '----=' . md5(uniqid(rand()));
$mail = "MIME-Version: 1.0\r\n";
$mail .= "TO: " . $to . "\r\n";
$mail .= "FROM: " . $from . "\r\n";
$mail .= "CC: " . $cc . "\r\n";
$mail .= "BCC: " . $bcc . "\r\n";
$mail .= "Subject: " . $subject . "\r\n";
$mail .= "content-type: multipart/related;
boundary=\"$related\"\r\n\r\n\r\n";
$mail .= "--$related\r\n";
$mail .= "content-type: multipart/alternative;
boundary=\"$boundry\"\r\n\r\n\r\n";
$mail .= "--$boundry\r\n";
$mail .= "content-type: text/plain; charset=\"iso-8859-1\"\r\n";
$mail .= "content-transfer-encoding: 8bit\r\n\r\n";
$mail .= $text . "\r\n\r\n";
$mail .= "--$boundry\r\n";
$mail .= "content-type: text/html; charset=\"iso-8859-1\"\r\n";
$mail .= "content-transfer-encoding: 8bit\r\n\r\n";
$mail .= $html . "\r\n\r\n";
$mail .= "--$boundry--\r\n\r\n";
$mail .= "--$related\r\n";
$mail .= "content-type: image/jpeg\r\n";
$mail .= "content-id: logo\r\n";
$mail .= "content-disposition: attachment;
filename=\"logo.jpg\"\r\n";
$mail .= "content-transfer-encoding: base64\r\n\r\n";
$mail .= $image . "\r\n\r\n";
$mail .= "--$related--\r\n\r\n";
$mail .= "-- End --\r\n";
$fileName = $dropDirectory . md5(uniqid(rand())) . '.eml';
$file = fopen($fileName, 'wb');
fwrite($file, $mail);
fclose($file);
unset($file);
if (!isset($exec)){ return $mail; }
exec($exec . $fileName);
return $mail;
}
}
?>

 >> Stay informed about: HTML Mail 
Back to top
Login to vote
robert

External


Since: Apr 21, 2006
Posts: 16



(Msg. 3) Posted: Sun May 14, 2006 9:33 pm
Post subject: Re: HTML Mail [Login to view extended thread Info.]
Archived from groups: per prev. post (more info?)

"Alan Little" wrote in message

| Carved in mystic runes upon the very living rock, the last words of
| robert of comp.lang.php make plain:
|
| > "J Huntley Palmer" wrote in message
| >
| >| How may I setup a proper HTML mail message with embedded href links
| >| using PHP, that follows all the MIME rules? Any examples or links
| >| would be appreciated.
| >
| > many will post links to full-featured php mailer classes...they tend
| > to be over-blown. here's what i use...if you understand the rfc,
| > modifying the code below is easily done so that this can handle
| > attachements as well. actually, this already has an attachement in
| > it...you would use the same methodology as seen when a logo is added
| > to the below.
|
| Just wondering -- how extensively has this code been used and tested? One
| of the most aggravating things I've encountered is the HTMLMail plugin
| for Phorm. I wrote the code, based on the RFCs, and for the most part it
| works fine. But some installations of OE have trouble with it. Only some,
| which is the aggravating part. I installed OE to check it out, and of
| course it works fine for me, so I haven't been able to troubleshoot it.

i've used the same code for three companies over the past few years for
automatic emails of various communications like general messaging, system
error reporting, scheduled reporting with and without attached files like
pdf's and excel.

so far, so good. ;^) one system is windows based, the other two are linux
and unix systems.
 >> Stay informed about: HTML Mail 
Back to top
Login to vote
Display posts from previous:   
Related Topics:
<<<HTML - Let us say I have lots of html-code I want to print.... surrounded by php code. I learned once that I could do like this: <?php $name = empty($_POST['name'] ? "" : $_POST['name']; print <<<HTML <form method="post" act...

PHP/HTML - Hope there is someone out there how can help me. I got a small problem, as you will properly see i'm a newbi. I'm running php 5.1.2 and apacheserver 2.0.55 on a winxp installation. The following code is not displaying anything in the browser: <?php...

PHP in html - Hello, I have a php include command in my website and the script shows up. However, I need for the script to show up on the right side of page (there is enough room there)... but for some reason it shows up at the bottom. I placed the include command...

HTML email using PHP - Hello How do i send a HTML email using PHP. I have tried loads of examples and they are not working. last example was <?php $to = blabla@bla.net; $subject = 'Wakeup bob!'; $message = '<b>yo</b>, whassup?'; $headers = "From:..

php & html editor - Hi there, I'm starting to learn php and need a php editor for windows. Can you recommend what you think the best editor available in the market? I've tried some free html editors and was not satisfied with them. I need one that is simple and neat...
   Database Forums (Home) -> PHP All times are: Pacific Time (US & Canada)
Page 1 of 1

 
You can post new topics in this forum
You can reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum



[ Contact us | Terms of Service/Privacy Policy ]