educational

Sending HTML E-mail Using PHP

Not too long ago there was a discussion about the pros and cons of having a message board on a pay site as a means of increasing customer interactivity, feedback, and retention. In this enlightening discussion was overlooked another, perhaps simpler and yet more practical and effective tool - the newsletter.

An informative, helpful, entertaining, and attractive newsletter (especially an HTML-formatted one) can be a tremendous asset to any e-commerce enterprise. Successfully producing and delivering one is a process not without its share of concerns and considerations, however.

Beyond the dynamics of producing compelling content for a newsletter, there are a handful of technical requirements that are occasionally problematic to overcome, depending upon your hardware and software infrastructure and configuration. One way to make the process run smoother is to send HTML-formatted mailings through a PHP gateway script that comes pre-configured with the necessary headers and other required information.

Valentin Ciocea from Ciocea Soft was kind enough to send us a PHP script that pre-configures your e-mail headers, then pulls an HTML file (in this case "newsletter.html") from your hard drive, and then sends it to the designated list of recipients.

Just don’t forget to use absolute references (such as <IMG src=https://www.site.com/image.jpg>) to included objects when building your HTML page.

<?

// read the HTML newsletter from hard drive :
$path="/www/site/";
$fis=fopen($path."newsletter.html","r");
$html=fread($fis,filesize ($path."newsletter.html"));
fclose($fis);

$receiver="address@email.com";
$sender="your_email@email.com";
$subject="Here is your newsletter.";

//add From: header
$headers = "From: $sender\r\n";

//specify MIME version 1.0
$headers .= "MIME-Version: 1.0\r\n";

//unique boundary
$boundary = uniqid("HTMLDEMO");

//tell e-mail client this e-mail contains//alternate versions
$headers .= "Content-Type: multipart/alternative" .
"; boundary = $boundary\r\n\r\n";

//message to people with clients who don't
//understand MIME
$headers .= "This is a MIME encoded message.\r\n\r\n";

//plain text version of message
$headers .= "--$boundary\r\n" .
"Content-Type: text/plain; charset=ISO-8859-1\r\n" .
"Content-Transfer-Encoding: base64\r\n\r\n";
$headers .= chunk_split(base64_encode("This e-mail contains the newsletter, but you are unable to see because it is in HTML and your email client can't display it."));

//HTML version of message
$headers .= "--$boundary\r\n" .
"Content-Type: text/html; charset=ISO-8859-1\r\n" .
"Content-Transfer-Encoding: base64\r\n\r\n";
$headers .= chunk_split(base64_encode($html));

//send message
mail($receiver, $subject, "", $headers);

?>

Of course, YOU need to build the HTML page that you want to use for your mailing, and have a proper opt-in mail list as well, but we’ll give you this fully-comented e-mailing script to help get you started. If you have trouble with this script, contact your server admin, or Valentin, or ask about it on XBiz' Coder's Underground message board. Good Luck! ~ Stephen

Copyright © 2026 Adnet Media. All Rights Reserved. XBIZ is a trademark of Adnet Media.
Reproduction in whole or in part in any form or medium without express written permission is prohibited.

More Articles

profile

Ricci Levy on Standing Up for the Right to Be Heard

When Ricci Levy speaks about human rights, she does not use detached, academic language. She speaks with urgency, emotion and the kind of passion that immediately makes it clear just how deeply personal this work is for her.

Women In Adult ·
opinion

Lessons From Decades of Building the Adult Internet

After my first year of college, I needed a job. So I did what people did back then: I opened the newspaper and started scanning the classifieds. One listing stood out: “Image Librarian.” I had no idea what that meant, but I applied, and got the job.

Tanguy ·
opinion

How to Build a Cross-Border Payment Strategy

Pull up your analytics and you’ll likely find that international traffic is already on your site. Some of those visitors convert, but a lot more bounced at checkout — and a meaningful chunk tried to pay but were declined.

Joe Fredricks ·
opinion

The KPIs That Keep Payment Processing Humming While You're Away

I always look forward to the summer as my kids are home and I can plan little trips with them to reconnect and have some fun. If you’re like me, however, you probably never go on vacation without your laptop, so you can check in or lurk in the background to make sure all systems remain go.

Cathy Beardsley ·
opinion

What Utah's SB 73 Means for Compliance Requirements

Utah has once again positioned itself at the center of the national battle over online age verification and adult-content regulation.

Corey D. Silverstein ·
profile

Clips4Sale's Christy on Backing Creators and Fueling Growth

Understanding the industry from within goes beyond data. For Christy, Manager of Creator Experience at Clips4Sale, that insight is shaped by front-line conversations and years spent listening not just to trends, but to people.

Women In Adult ·
opinion

Breaking Down AI-Powered Moderation and Platform Safety

Adult platforms, including content sites, cam services and dating apps, consistently face a range of high-risk challenges. These include verifying consent, particularly for user-uploaded content, addressing nonconsensual material such as leaks and so-called revenge porn, and ensuring effective age verification and protection for minors. At the same time, platforms must manage content moderation at scale while addressing payment fraud, scams, harassment and user abuse.

Christoph Hermes ·
opinion

How to Optimize Subscription Billing for Compliance and Stability

The Federal Trade Commission’s “click to cancel” rule is coming back around. Last year, a federal appeals court vacated the FTC’s Negative Option Rule, aimed at addressing deceptive or unfair practices and making it easier for consumers to cancel online subscriptions.

Jonathan Corona ·
opinion

Key Strategies for Streamlining Payment Processing Approval

Why is it taking so long to get my account approved? It's frustrating for everyone involved, but it's all part of the process. Over the past year, timelines have stretched to 60 days or more for merchants to complete onboarding, from internal compliance review to banking partner approval and final card brand registration.

Cathy Beardsley ·
opinion

What to Know About Alabama's Regulatory Push on Adult Content

Over the past two years, Alabama has quietly but aggressively transformed itself into one of the most restrictive and unfriendly jurisdictions for the adult entertainment industry. Through the enactment of House Bill 164 and related enforcement mechanisms, the state has layered taxation, compliance burdens and content restrictions in a way that goes far beyond traditional regulation.

Corey D. Silverstein ·
Show More