Heed help! HTML email for GMAIL

PHP programming forum. Ask questions or help people concerning PHP code. Don't understand a function? Need help implementing a class? Don't understand a class? Here is where to ask. Remember to do your homework!

Moderator: General Moderators

Post Reply
vidzlab
Forum Newbie
Posts: 2
Joined: Tue Apr 17, 2007 2:19 am

Heed help! HTML email for GMAIL

Post 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]
Last edited by vidzlab on Mon Apr 30, 2007 1:22 am, edited 1 time in total.
User avatar
Chris Corbyn
Breakbeat Nuttzer
Posts: 13098
Joined: Wed Mar 24, 2004 7:57 am
Location: Melbourne, Australia

Post by Chris Corbyn »

Try changing your \r\n to just \n.
vidzlab
Forum Newbie
Posts: 2
Joined: Tue Apr 17, 2007 2:19 am

=oD

Post by vidzlab »

It works! Thanks!
User avatar
Chris Corbyn
Breakbeat Nuttzer
Posts: 13098
Joined: Wed Mar 24, 2004 7:57 am
Location: Melbourne, Australia

Re: =oD

Post 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.
Post Reply