By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
440,822 Members | 731 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 440,822 IT Pros & Developers. It's quick & easy.

sending html email using php script

P: n/a
Ann
Hi,

I am trying to send a html email from a php script. This script emails
a common information to all the members in the database. The only
problem is I cannot specify colors, hyperlinks etc..Html tags like
<h1></h1>, <br/>, <b> etc works though..

Could any one tell me what i might be doing wrong? Any help will be
greatly appreciated.

Thanks,
Ann

Code:
function mail_it($content, $subject, $email, $recipient) {
global $attachment_chunk, $attachment_name, $attachment_type,
$attachment_sent, $bcc;
global $db;
global $msgbody;

$ob = "----=_OuterBoundary_000";
$ib = "----=_InnerBoundery_001";

$sql_result = mysql_query("SELECT * FROM contacts", $db);
echo "<br/><b>Emails sent to:</b><br/>";

while($rs = mysql_fetch_array($sql_result))
{
$message = "";
$headers = "";
$recip = $rs["Email"];
$headers = "MIME-Version: 1.0\r\n";
$headers .= "From: ".$email."\r\n";
$headers .= "To: ".$recip."\r\n";
$headers .= "Reply-To: ".$email."\r\n";
if ($bcc) $headers .= "Bcc: ".$bcc."\r\n";
$headers .= "X-Priority: 1\r\n";
$headers .= "X-Mailer: Formmail".VERSION."\r\n";
$headers .= "Content-Type:
multipart/mixed;\r\n\tboundary=\"".$ob."\"\r\n";

$ToName = $rs["Salutation"]."".$rs["FirstName"]."
".$rs["LastName"];
$content = "Hello ".$ToName.",<br/><br/>";
$content .= $msgbody;
$content .=" <br/><br/>";
$content .="Thank you.";
$content .=" <br/><br/><br/>";
$content .="<small><font color='blue'>Please send an email to <a
href='mailto:ab*@def.com&subject='Re:Email Notifications' to get more
information.</font></small>";
$message .= "This is a multi-part message in MIME format.\r\n";
$message .= "\r\n--".$ob."\r\n";
$message .= "Content-Type:
multipart/alternative;\r\n\tboundary=\"".$ib."\"\r\n\r\n";
$message .= "\r\n--".$ib."\r\n";
//$message .= "Content-Type:
text/plain;\r\n\tcharset=\"iso-8859-1\"\r\n";
$message .= "Content-Type:
text/html;\r\n\tcharset=\"iso-8859-1\"\r\n";
$message .= "Content-Transfer-Encoding:
quoted-printable\r\n\r\n";
$message .= $content."\r\n\r\n";
$message .= "\r\n--".$ib."--\r\n";
if ($attachment_name && !$attachment_sent) {
$message .= "\r\n--".$ob."\r\n";
$message .= "Content-Type:
$attachment_type;\r\n\tname=\"".$attachment_name." \"\r\n";
$message .= "Content-Transfer-Encoding: base64\r\n";
$message .= "Content-Disposition:
attachment;\r\n\tfilename=\"".$attachment_name."\" \r\n\r\n";
$message .= $attachment_chunk;
$message .= "\r\n\r\n";
$attachment_sent = 1;
}
$message .= "\r\n--".$ob."--\r\n";

mail($recip, $subject, $message, $headers);
}

}
Jul 17 '05 #1
Share this Question
Share on Google+
4 Replies


P: n/a
On 2004-10-04, Ann <ns****@yahoo.com> wrote:
Hi,

I am trying to send a html email from a php script. This script emails
a common information to all the members in the database. The only
problem is I cannot specify colors, hyperlinks etc..Html tags like
<h1></h1>, <br/>, <b> etc works though..

Could any one tell me what i might be doing wrong? Any help will be
greatly appreciated.


No one likes HTML mails.
Your php knows that.

SCNR :)

Mail is Mail, not Web.

If you want your users to view Webpages send them a link.

And: HTML mails are often placed higher in spam rankings,
especially when not send correctly. So there's a high chance your
receivers will never read that, because their spam filters catch
it.

--
Marco Dieckhoff
icq# 22243433
GPG Key 0x1A6C95BA -- http://www.frankonia-brunonia.de/keys
Jul 17 '05 #2

P: n/a
Ann a écrit :
Hi,

I am trying to send a html email from a php script. This script emails
a common information to all the members in the database. The only
problem is I cannot specify colors, hyperlinks etc..Html tags like
<h1></h1>, <br/>, <b> etc works though..

Could any one tell me what i might be doing wrong? Any help will be
greatly appreciated.

Thanks,
Ann

Code:
function mail_it($content, $subject, $email, $recipient) {
global $attachment_chunk, $attachment_name, $attachment_type,
$attachment_sent, $bcc;
global $db;
global $msgbody;

$ob = "----=_OuterBoundary_000";
$ib = "----=_InnerBoundery_001";

$sql_result = mysql_query("SELECT * FROM contacts", $db);
echo "<br/><b>Emails sent to:</b><br/>";

while($rs = mysql_fetch_array($sql_result))
{
$message = "";
$headers = "";
$recip = $rs["Email"];
$headers = "MIME-Version: 1.0\r\n";
$headers .= "From: ".$email."\r\n";
$headers .= "To: ".$recip."\r\n";
$headers .= "Reply-To: ".$email."\r\n";
if ($bcc) $headers .= "Bcc: ".$bcc."\r\n";
$headers .= "X-Priority: 1\r\n";
$headers .= "X-Mailer: Formmail".VERSION."\r\n";
$headers .= "Content-Type:
multipart/mixed;\r\n\tboundary=\"".$ob."\"\r\n";

$ToName = $rs["Salutation"]."".$rs["FirstName"]."
".$rs["LastName"];
$content = "Hello ".$ToName.",<br/><br/>";
$content .= $msgbody;
$content .=" <br/><br/>";
$content .="Thank you.";
$content .=" <br/><br/><br/>";
$content .="<small><font color='blue'>Please send an email to <a
href='mailto:ab*@def.com&subject='Re:Email Notifications' to get more
information.</font></small>";
$message .= "This is a multi-part message in MIME format.\r\n";
$message .= "\r\n--".$ob."\r\n";
$message .= "Content-Type:
multipart/alternative;\r\n\tboundary=\"".$ib."\"\r\n\r\n";
$message .= "\r\n--".$ib."\r\n";
//$message .= "Content-Type:
text/plain;\r\n\tcharset=\"iso-8859-1\"\r\n";
$message .= "Content-Type:
text/html;\r\n\tcharset=\"iso-8859-1\"\r\n";
$message .= "Content-Transfer-Encoding:
quoted-printable\r\n\r\n";
$message .= $content."\r\n\r\n";
$message .= "\r\n--".$ib."--\r\n";
if ($attachment_name && !$attachment_sent) {
$message .= "\r\n--".$ob."\r\n";
$message .= "Content-Type:
$attachment_type;\r\n\tname=\"".$attachment_name." \"\r\n";
$message .= "Content-Transfer-Encoding: base64\r\n";
$message .= "Content-Disposition:
attachment;\r\n\tfilename=\"".$attachment_name."\" \r\n\r\n";
$message .= $attachment_chunk;
$message .= "\r\n\r\n";
$attachment_sent = 1;
}
$message .= "\r\n--".$ob."--\r\n";

mail($recip, $subject, $message, $headers);
}

}

Use php.classmailer ; it 's a nice class
Jul 17 '05 #3

P: n/a
> No one likes HTML mails.
Your php knows that.

SCNR :)

Mail is Mail, not Web.

If you want your users to view Webpages send them a link.

And: HTML mails are often placed higher in spam rankings,
especially when not send correctly. So there's a high chance your
receivers will never read that, because their spam filters catch
it.


Wrong day of the week for a Sermon buddy --

--Wil
Jul 17 '05 #4

P: n/a
la*******@hotmail.com wrote:
No one likes HTML mails.
Your php knows that.

Mail is Mail, not Web.

If you want your users to view Webpages send them a link.

And: HTML mails are often placed higher in spam rankings,
especially when not send correctly. So there's a high chance your
receivers will never read that, because their spam filters catch
it.


Wrong day of the week for a Sermon buddy --


<obligatory>
- I agree with that guy about HTML emails, but understand that sometimes you
don't have a choice
- Single quotes are usually preferable for PHP strings, as PHP doesn't have to
search them for variables
- Though most browsers parse them okay, you really should use double quotes for
HTML attributes
- *cough*CSS*cough*
</obligatory>

$content .="<small><font color='blue'>Please send an email to <a
href='mailto:ab*@def.com&subject='Re:Email Notifications' to get more
information.</font></small>";

^^^^ this line is suspicious. Unless my NG reader mangled the mailto (which is
entirely possible), you don't have a closing </A> tag, you have a '&' instead of
'?' for the query string, you have a space and a single quote in your subject,
you didn't close your opening A tag with a '>' or even the proper quote
I'd try this:
$content .='<small><font color="blue">Please send an email to <a
href="mailto:ab*@def.com?subject='.urlencode('Re:E mail Notifications').'">some
address</a> to get more information.</font></small>';

If that doesn't fix it, try viewing source and copying the HTML from the emails
you receive and run it through the w3c html validator (somewhere at w3c.org).

Shawn
--
Shawn Wilson
sh***@glassgiant.com
http://www.glassgiant.com
Jul 17 '05 #5

This discussion thread is closed

Replies have been disabled for this discussion.