Page 1 of 1

Heed help! HTML email for GMAIL

Posted: Tue Apr 17, 2007 2:29 am
by vidzlab
Hello! I have a project which needs to send HTML email with crossbrowser compatibility. My html email worked well with other mail programs, except with gmail. It displays the html tags! Help please! tnx!

Code: Select all

<?php 
$message .= '<table width="524" border="0" cellpadding="0" cellspacing="0" >
			<tr>
                <td height="19" colspan="6" align="left" valign="middle" bgcolor="#FFFFFF" class="headings">Passenger List</td>
        	</tr>
            <tr>
                <td width="32" height="19" align="left" valign="middle" class="headings">No.</td>
                      <td width="208" align="left" valign="middle" class="headings">Name</td>
                      <td width="57" align="center" valign="middle" class="headings">Category</td>
                      <td width="50" align="right" valign="middle" class="headings">Fare </td>
                      <td width="37" align="right" valign="middle" class="headings">TF</td>
                      <td width="45" align="right" valign="middle" class="headings">ASF</td>
        </tr>'; 

 if ($totalRows_rscustlist > 0) { // Show if recordset not empty 

			$ctrcust=1;
			$totaltf = 0;
			$totalasf = 0;
			$totalfare = 0;
			$totalcost = 0;
			do { 

      
$message  .=    '<tr>     
        		<td height="24" valign="middle" class="labels4">' . $ctrcust . '</td>
                <td valign="middle" class="labels4">' . $row_rscustlist['lastname'] . ',&nbsp;' . $row_rscustlist['firstname'] . '&nbsp;'.$row_rscustlist['mi'] . '</td>
                <td align="center" valign="middle" class="labels4">';
					  if($row_rscustlist['age'] < 2)
					  {
					  	$message .= "IF";
					  }						  
					  elseif($row_rscustlist['age'] >= 2 && $row_rscustlist['age'] < 12)
					  {
					  	$message .= "CF";
					  }	
					  elseif($row_rscustlist['age'] >= 12 && $row_rscustlist['age'] < 60)
					  {
					  	$message .=  "RF";	
					  }		
					  else
					  {
					  	$message .=  "SC";
					  }	
	$message .=  '</td><td align="right" valign="middle" class="labels4">';
					  $childdiscount = 0.3;
					  $infantdiscount = 0.9;
					  $scdiscount = 0;
					  $farecost = 0; 
					  $totalcost = 0.00;
					  $tf = 0;
					  $asf = 0;					  
					  if($row_rscustlist['age'] < 2){
					  	//echo "IF";
							if($_SESSION['triptype'] == 'rtrip' || $_SESSION['triptype'] == '')
							{ 
								$farecost = ($_SESSION['depfarecost'] - ($_SESSION['depfarecost'] * $infantdiscount)) + ($_SESSION['retfarecost'] - ($_SESSION['retfarecost'] * $infantdiscount));

								
							} else {
								$farecost = ($_SESSION['depfarecost'] - ($_SESSION['depfarecost'] * $infantdiscount));
							}
						//echo $farecost;			
					  }						  
					  elseif(($row_rscustlist['age'] >= 2) && ($row_rscustlist['age'] < 12)){
					  	//echo "CF";
							if($_SESSION['triptype'] == 'rtrip' || $_SESSION['triptype'] == '')
							{ 
								$farecost = ($_SESSION['depfarecost'] - ($_SESSION['depfarecost'] * $infantdiscount)) + ($_SESSION['retfarecost'] - ($_SESSION['retfarecost'] * $childdiscount));								

								$tf = $_SESSION['departtf'] + $_SESSION['returntf'];
								$asf = $_SESSION['departasf'] + $_SESSION['returnasf'];					
								
							} else {
								$farecost = ($_SESSION['depfarecost'] - ($_SESSION['depfarecost'] * $childdiscount));

								$tf = $_SESSION['departtf'];
								$asf = $_SESSION['departasf'];					
								
							}
						//echo $farecost;									
					  }	
					  elseif(($row_rscustlist['age'] == 12) && ($row_rscustlist['age'] < 60)){
					  	//echo "RF";	
							if($_SESSION['triptype'] == 'rtrip' || $_SESSION['triptype'] == '')
							{ 
								$farecost = $_SESSION['depfarecost'] + $_SESSION['retfarecost'];

								$tf = $_SESSION['departtf'] + $_SESSION['returntf'];
								$asf = $_SESSION['departasf'] + $_SESSION['returnasf'];																					
								
							} else {
								$farecost = $_SESSION['depfarecost'];

								$tf = $_SESSION['departtf'];
								$asf = $_SESSION['departasf'];					
								
							}
						//echo $farecost;			
						
					  }		
					  else
					  {
					  	//echo "SC";
							if($_SESSION['triptype'] == 'rtrip' || $_SESSION['triptype'] == '')
							{ 
								$farecost = ($_SESSION['depfarecost'] - ($_SESSION['depfarecost'] * $scdiscount)) + ($_SESSION['retfarecost'] - ($_SESSION['retfarecost'] * $scdiscount));								

								$tf = $_SESSION['departtf'] + $_SESSION['returntf'];
								$asf = $_SESSION['departasf'] + $_SESSION['returnasf'];					
								
							} else {
								$farecost = ($_SESSION['depfarecost'] - ($_SESSION['depfarecost'] * $scdiscount));							
								$tf = $_SESSION['departtf'];
								$asf = $_SESSION['departasf'];													
							}
						//echo $farecost;									
					  }	
					  $message .=  number_format($farecost,2,".",",");
					  $totalfare = $totalfare + $farecost;
					  $message .= '</td>
                        <td align="right" valign="middle" class="labels4">';
                      $message .=  number_format($tf,2,".",",");
						$totaltf = $totaltf + $tf;
					  $message .= '</td><td align="right" valign="middle" class="labels4">';                      
	 			  	  $message .=  number_format($asf,2,".",",");
					  $totalasf = $totalasf + $asf;						
					  $message .= ' </td>
          </tr>';
			$ctrcust=$ctrcust + 1;
			} while ($row_rscustlist = mysql_fetch_assoc($rscustlist));

            $message .= '<tr>
                  
                  <td height="19" valign="top" class="labels4"><!--DWLayoutEmptyCell-->&nbsp;</td>
                      <td valign="middle" class="smallnotes"><!--DWLayoutEmptyCell-->&nbsp;</td>
                      <td valign="top"><!--DWLayoutEmptyCell-->&nbsp;</td>
                      <td align="right" valign="middle" class="labels4">__________</td>
                      <td align="right" valign="middle" class="labels4">__________</td>
                      <td align="right" valign="middle" class="labels4">__________</td>
        </tr>  
                <tr>
                  
                  <td height="19" valign="top" class="labels4"><!--DWLayoutEmptyCell-->&nbsp;</td>
                      <td valign="middle" class="smallnotes"><!--DWLayoutEmptyCell-->&nbsp;</td>
                      <td valign="top"><!--DWLayoutEmptyCell-->&nbsp;</td>
                      <td align="right" valign="middle" class="labels4">';
				  $message .=  number_format($_SESSION['tfare'],2,".",",");
				  $message .= '</td>
                      <td align="right" valign="middle" class="labels4">';
				  $message .=  number_format($_SESSION['ttf'],2,".",",");
				  $message .= '</td>
                      <td align="right" valign="middle" class="labels4">';
				  $message .=  number_format($_SESSION['tasf'],2,".",",");
				  $message .= '</td>
        </tr>';  

                } // Show if recordset empty 
        $message .= '<tr>
                <td height="36" colspan="6" align="right" valign="bottom" class="amounts">TOTAL :  Php'; 
		$message .= number_format($_SESSION['tcfare'],2,".",",");
		$message .= '</td>
              </tr>
    </table>';
	
$headers  = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
$headers .= 'From: ticketsales@technet.net' . "\r\n" .
   'Reply-To: ticketsales@technet.net' . "\r\n" .
   'X-Mailer: PHP/' . phpversion();

===============================================================

<table width="524" border="0" cellpadding="0" cellspacing="0" >
                       <tr>
               <td height="19" colspan="6" align="left" valign="middle" bgcolor="#FFFFFF" class="headings">Passenger List</td>
               </tr>
           <tr>
               <td width="32" height="19" align="left" valign="middle" class="headings">No.</td>
                     <td width="208" align="left" valign="middle" class="headings">Name</td>
                     <td width="57" align="center" valign="middle" class="headings">Category</td>
                     <td width="50" align="right" valign="middle" class="headings">Fare </td>
                     <td width="37" align="right" valign="middle" class="headings">TF</td>
                     <td width="45" align="right" valign="middle" class="headings">ASF</td>
       </tr><tr>
                       <td height="24" valign="middle" class="labels4">1</td>
               <td valign="middle" class="labels4">BEE,&nbsp;JOLLI&nbsp;X</td>
               <td align="center" valign="middle" class="labels4">RF</td><td align="right" valign="middle" class="labels4">2,300.00</td>
                       <td align="right" valign="middle" class="labels4">60.00</td><td align="right" valign="middle" class="labels4">30.00 </td>
         </tr><tr>

                 <td height="19" valign="top" class="labels4"><!--DWLayoutEmptyCell-->&nbsp;</td>
                     <td valign="middle" class="smallnotes"><!--DWLayoutEmptyCell-->&nbsp;</td>
                     <td valign="top"><!--DWLayoutEmptyCell-->&nbsp;</td>
                     <td align="right" valign="middle" class="labels4">__________</td>
                     <td align="right" valign="middle" class="labels4">__________</td>
                     <td align="right" valign="middle" class="labels4">__________</td>
       </tr>
               <tr>

                 <td height="19" valign="top" class="labels4"><!--DWLayoutEmptyCell-->&nbsp;</td>
                     <td valign="middle" class="smallnotes"><!--DWLayoutEmptyCell-->&nbsp;</td>
                     <td valign="top"><!--DWLayoutEmptyCell-->&nbsp;</td>
                     <td align="right" valign="middle" class="labels4">2,300.00</td>
                     <td align="right" valign="middle" class="labels4">60.00</td>
                     <td align="right" valign="middle" class="labels4">30.00</td>
       </tr><tr>
               <td height="36" colspan="6" align="right" valign="bottom" class="amounts">TOTAL :  Php2,390.00</td>
             </tr>
   </table>
d11wtq | Please use

Code: Select all

 tags when posting PHP code.[/color]

Posted: Mon Apr 30, 2007 12:23 am
by Chris Corbyn
Try changing your \r\n to just \n.

=oD

Posted: Mon Apr 30, 2007 1:31 am
by vidzlab
It works! Thanks!

Re: =oD

Posted: Mon Apr 30, 2007 2:26 am
by Chris Corbyn
vidzlab wrote:It works! Thanks!
Basically windows servers use SMTP which is a protocol requiring \r\n to terminate commands (and headers!). Linux/UNIX use sendmail which just reads directly from inputted emails and skips the initial SMTP-phase. UNIX systems use \n a line ending in standard input so certain sendmail variants (qMail for one) which try to "fix" any occurences of \r\n but they do it very badly and result in doubled up line breaks which completely breaks the headers of the email.