sending email with php

Discussion in 'PHP' started by sudhakararaog, Dec 23, 2009.

  1. #1
    <?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
     
    sudhakararaog, Dec 23, 2009 IP
  2. Miquexia

    Miquexia Peon

    Messages:
    103
    Likes Received:
    1
    Best Answers:
    0
    Trophy Points:
    0
    #2
    Miquexia, Dec 23, 2009 IP
  3. shallowink

    shallowink Well-Known Member

    Messages:
    1,218
    Likes Received:
    64
    Best Answers:
    2
    Trophy Points:
    150
    #3
    shallowink, Dec 23, 2009 IP
  4. sudhakararaog

    sudhakararaog Member

    Messages:
    73
    Likes Received:
    0
    Best Answers:
    0
    Trophy Points:
    41
    #4
    thanks for letting me know
     
    sudhakararaog, Dec 23, 2009 IP
  5. sudhakararaog

    sudhakararaog Member

    Messages:
    73
    Likes Received:
    0
    Best Answers:
    0
    Trophy Points:
    41
    #5
    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
     
    sudhakararaog, Dec 23, 2009 IP
  6. vinoth.t

    vinoth.t Peon

    Messages:
    156
    Likes Received:
    2
    Best Answers:
    0
    Trophy Points:
    0
    #6
    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">"
     
    vinoth.t, Dec 23, 2009 IP
  7. sudhakararaog

    sudhakararaog Member

    Messages:
    73
    Likes Received:
    0
    Best Answers:
    0
    Trophy Points:
    41
    #7
    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
     
    sudhakararaog, Dec 23, 2009 IP
  8. vinoth.t

    vinoth.t Peon

    Messages:
    156
    Likes Received:
    2
    Best Answers:
    0
    Trophy Points:
    0
    #8
    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.
     
    vinoth.t, Dec 23, 2009 IP
  9. astkboy2008

    astkboy2008 Peon

    Messages:
    211
    Likes Received:
    5
    Best Answers:
    0
    Trophy Points:
    0
    #9
    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
     
    astkboy2008, Dec 23, 2009 IP