sending html email using php script

Collapse
This topic is closed.
X
X
 
  • Time
  • Show
Clear All
new posts
  • Ann

    sending html email using php script

    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($conten t, $subject, $email, $recipient) {
    global $attachment_chu nk, $attachment_nam e, $attachment_typ e,
    $attachment_sen t, $bcc;
    global $db;
    global $msgbody;

    $ob = "----=_OuterBoundary _000";
    $ib = "----=_InnerBoundery _001";

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

    while($rs = mysql_fetch_arr ay($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".VERSI ON."\r\n";
    $headers .= "Content-Type:
    multipart/mixed;\r\n\tbou ndary=\"".$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><fo nt color='blue'>Pl ease send an email to <a
    href='mailto:ab c@def.com&subje ct='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\tcha rset=\"iso-8859-1\"\r\n";
    $message .= "Content-Type:
    text/html;\r\n\tchar set=\"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_na me && !$attachment_se nt) {
    $message .= "\r\n--".$ob."\r\n ";
    $message .= "Content-Type:
    $attachment_typ e;\r\n\tname=\" ".$attachment_n ame."\"\r\n";
    $message .= "Content-Transfer-Encoding: base64\r\n";
    $message .= "Content-Disposition:
    attachment;\r\n \tfilename=\"". $attachment_nam e."\"\r\n\r\n ";
    $message .= $attachment_chu nk;
    $message .= "\r\n\r\n";
    $attachment_sen t = 1;
    }
    $message .= "\r\n--".$ob."--\r\n";

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

    }
  • Marco Dieckhoff

    #2
    Re: sending html email using php script

    On 2004-10-04, Ann <nsajus@yahoo.c om> wrote:[color=blue]
    > 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.[/color]

    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

    Comment

    • nipepsi

      #3
      Re: sending html email using php script

      Ann a écrit :[color=blue]
      > 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($conten t, $subject, $email, $recipient) {
      > global $attachment_chu nk, $attachment_nam e, $attachment_typ e,
      > $attachment_sen t, $bcc;
      > global $db;
      > global $msgbody;
      >
      > $ob = "----=_OuterBoundary _000";
      > $ib = "----=_InnerBoundery _001";
      >
      > $sql_result = mysql_query("SE LECT * FROM contacts", $db);
      > echo "<br/><b>Emails sent to:</b><br/>";
      >
      > while($rs = mysql_fetch_arr ay($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".VERSI ON."\r\n";
      > $headers .= "Content-Type:
      > multipart/mixed;\r\n\tbou ndary=\"".$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><fo nt color='blue'>Pl ease send an email to <a
      > href='mailto:ab c@def.com&subje ct='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\tcha rset=\"iso-8859-1\"\r\n";
      > $message .= "Content-Type:
      > text/html;\r\n\tchar set=\"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_na me && !$attachment_se nt) {
      > $message .= "\r\n--".$ob."\r\n ";
      > $message .= "Content-Type:
      > $attachment_typ e;\r\n\tname=\" ".$attachment_n ame."\"\r\n";
      > $message .= "Content-Transfer-Encoding: base64\r\n";
      > $message .= "Content-Disposition:
      > attachment;\r\n \tfilename=\"". $attachment_nam e."\"\r\n\r\n ";
      > $message .= $attachment_chu nk;
      > $message .= "\r\n\r\n";
      > $attachment_sen t = 1;
      > }
      > $message .= "\r\n--".$ob."--\r\n";
      >
      > mail($recip, $subject, $message, $headers);
      > }
      >
      > }[/color]
      Use php.classmailer ; it 's a nice class

      Comment

      • Guest's Avatar

        #4
        Re: sending html email using php script

        > No one likes HTML mails.[color=blue]
        > 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.[/color]

        Wrong day of the week for a Sermon buddy --

        --Wil


        Comment

        • Shawn Wilson

          #5
          Re: sending html email using php script

          laidbak69@hotma il.com wrote:[color=blue]
          >[color=green]
          > > 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.[/color]
          >
          > Wrong day of the week for a Sermon buddy --[/color]

          <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*coug h*
          </obligatory>

          $content .="<small><fo nt color='blue'>Pl ease send an email to <a
          href='mailto:ab c@def.com&subje ct='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">Pl ease send an email to <a
          href="mailto:ab c@def.com?subje ct='.urlencode( 'Re:Email 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
          shawn@glassgian t.com

          Comment

          Working...