<?php $headers = "Content-type: text/html; charset=iso-8859-1"; $to="myemailaddress"; $subject="Email Newsletter"; $message = '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>Email Newsletter</title> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <meta name="robots" content="noindex, nofollow" /> <link rel="stylesheet" type="text/css" href="style.css" /> </head> <body> <div id="wrapper"> <div id="topmenu"> </div> <div id="content"> <div class="leftcolumn"> </div> <div class="rightcolumn"> </div> </div> <div id="footer"> </div> </div> </body> </html>'; if(! mail($to, $subject, $message, $headers)){ echo "There was an error is sending the email"; } else{ echo "The email has been sent"; } ?> hi my question is about send an email with php like a newsletter, when we read a newsletter email its similar to a webpage which contains content, images, css and other elements i created a static webpage initially with html css and images folder after creating the page i wanted to test to see how it would look if i were to send this as an email like a newsletter. so i have created a php file with $headers = "Content-type: text/html; charset=iso-8859-1"; $to="myemailaddress"; $subject="Email Newsletter"; and $message as mentioned above has the entire html code as i used it in my static html page i also copied the style.css in the server and created images folder and copied all the images i used in my static page to the server. i created a separate folder in my webserver called newsletter and copied the php file, css file and images folder with the images i used when i accessed the index.php as http://website.com/emailnewsletter i am getting a message that The email has been sent and i am getting the email however my question is when i open this email the styles and images are not being applied and i see only the text in the static page i created. can someone let me know how i can fix this so that when i open the email it would look like the static page i created with all the styles applies and images displayed is this only possible by using specialized email softwares or can it be done by php as well with the logic used. any help will be appreciated. thanks
either include the css file in the head section or inline the styles per element. here's an article covering the do's and don'ts for email CSS. http://groundwire.org/support/articles/css-and-email-newsletters
initially i used a repeating background using css by specifying repeat-x for a div that holds the background image, when i tested this by sending an email using php i noticed that when i clicked view images in gmail i am able to see all the images i used as <img> tag specifying its absolute path, but not repeating background using css so i tried using the repeating background inside a <td> which repeated fine when i access the page on my local machine and from a server, however when i used it for the email example , even with <td> tag gmail is not able to repeat the background image, i would image this would be the case with other email clients as well, is there any workaround for repeating backgrounds either as repeat-x or repeat-y for email clients in this case when sending an email from a php file thanks
Actually Email servers won't support importing external css style sheet, js file for security purpose. Image also can be load by user authentication. The solution is use <div style=""> instead of "<div class="rightcolumn">"
thanks for replying i have tried using repeat-x for the background image inside a div tag as <div id="topmenu" style="float: left; width: 896px; height: 56px; background: #056f9f url(http://website.com/emailnewsletter/images/topmenubg.jpg) repeat-x top left;"><ul><li></li><li></li></ul></div> however when i open the email this background image is not repeating in my email
Most of the mail client like gmail not supporting Background image. Now I'm unable to put the link where I got the information. I will tell you latter.
oh your problem is very easy use this header $headers = 'MIME-Version: 1.0' . "\r\n"; $headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n"; PHP: and you must use this stripslashes for the message