Php ile Html Mail Gönderme

Web tabanlı uygulama geliştirme araçları(PHP, ASP vb...) ile ilgili konuları buraya yazabilirsiniz.
Cevapla
AliRiza
Üye
Mesajlar: 172
Kayıt: 24 Kas 2004 10:57
Konum: İstanbul/Avcılar
İletişim:

Php ile Html Mail Gönderme

Mesaj gönderen AliRiza »

Php'nin mail fonksiyonunu kullanarak html olarak mail göndermek istiyorum.Normak olarak sadece html'yi mail olark göndermem problem değil..
Ben php ile veritabanından çektiğim verileri html mail olarak göndermek istiyorum.Sadece html olursa tırnak arasında html kodlarını eklemek sorunu çözüyor.Ama arada php kodları olursa bunu nasıl hallederim.
Tırnak arasına koydum ama aradakş php'lerden dolayı boş ekran geliyor.
Bunu nasıl çözerim..

Kod: Tümünü seç

<?
$to="deneme@deneme.com';
$subject:'Deneme';
$message='?>
Kodun devamı daha anlaşılır olsun diye ayırdım.

Kod: Tümünü seç

form  name="form1" method="post" action='<?=$_SERVER['PHP_SELF']?>'>        <p> </p>       
	     <table width="732" height="151" border="0" align="center" bgcolor="#FF0000">
           <tr bgcolor="#FFEBCD">
             <td height="37" colspan="3" valign="middle" bgcolor="#003399">
               <p align="center" class="style1"> VOLVO CATALOG SİPARİŞ LİSTESİ   
               <div align="center"></div> <table width="229" border="0" align="right" cellpadding="0" cellspacing="0">
                             <tr>
                               <td width="151"><div align="center"><span class="style1"><a href="order_list.php">Sipariş Listesi</a></span></div></td>
                               <td width="78"><div align="center"><span class="style1"><a href="my_basket.php"><img src="images/my_basket.gif" alt="MY BASKET" width="75" height="22" border="0" align="right"></a></span></div></td>
                             </tr>
                           </table></td>
           </tr>
           <tr bgcolor="#FFFFFF">
             <td height="77" colspan="3" align="right">
               <table width="100%" border="1" align="center" cellpadding="0" cellspacing="0" bordercolor="#111111" id="AutoNumber1" style="border-collapse: collapse">
                 <tr bgcolor="#993333">
                   <td width="38%" height="37" align="center"><span class="style6">PICTURE</span></td>
                   <td width="9%" align="center"><span class="style6">NT. REF </span></td>
                   <td width="11%" align="center"><span class="style6">ORG. REF </span></td>
                   <td width="18%" align="center"><span class="style6">DESCRIPTION</span></td>
                   <td width="11%" align="center"><span class="style6">NOTES</span></td>
                   <td width="10%" align="center"><div align="center"><span class="style6">QUANTFY</span></div></td>
                   <td width="3%" align="center"><INPUT TYPE=CHECKBOX NAME="everything"  onClick="checkAll(this);" value="CHECK ALL" ></td>
                 </tr>
                 <?php   $i=0;                    
		 while($satir = mysql_fetch_array($sorgu)) 
		{                     
		$i++; ?>
                 <tr bgcolor="#efefef" >
                   <? $picture="$satir[7].jpg";
				    $yol="$satir[1]";
					if($yol=="Mercedes") {$yol1="picture"; }
                    if($yol=="Volvo") {$yol1="volvo_picture"; }	
				   ?>
                   <td width="38%" height="206">
                     <div align="center"><font color="#CC0000" face="Arial, Helvetica, sans-serif"><img src="/html/<?php Echo "$yol1"?>/<?php echo $picture;?>" width="238" height="161" align="middle" border="0"></font></div></td>
                   <td width="9%"> <?php echo$satir[ntno];?>
                       <div align="center"></div></td>
                   <td width="11%"> <?php echo$satir[orgno];?>
                       <div align="center"></div></td>
                   <td width="18%"> <?php echo$satir[description];?>
                       <div align="center"></div></td>
                   <td><?php echo$satir[6];?>
                       <div align="center"></div></td>
                   <td><div align="center">
                       <input name="adet<?echo $satir[0]?>" value="<?echo $satir[adet];?>" type="text" size="5" >
                     </div>
                       <div align="center"></div></td>
                   <td>
                     <input type="checkbox" name="uye1<?echo $satir[0]?> id="<? Echo $i ?>" ></td>
                 </tr>
                 <? } //echo$i; ?>
               </table>
               <table width="738" border="0" bgcolor="#FF0000" align="center" cellpadding="0" cellspacing="0">
                 <tr>
                   <td width="738" bgcolor="#FF0000">
                     <div align="center"><font color="#FFFFFF" face="Arial, Helvetica, sans-serif">
                       <?}Echo "$toplam adet ürün mevcut";?>
                   </font></div></td>
                 </tr>
                 <tr>
                   <td bgcolor="#FF0000"><b><font face="Arial, Helvetica, sans-serif" size="2" color="#FFFFFF"> <?Echo "$sayfa".".sayfa";?> </font></b></td>
                 </tr>
                 <tr>
                   <td bgcolor="#FF0000"> <b><font face="Arial, Helvetica, sans-serif" color="#FFFFFF"  onMouseOut="bgColor='#EFEFEF'" class="stok_hand"><?echo "<br>";
  
	for($i=1; $i < $kacsayfa; $i++) 
{
echo "<a href=my_basket.php?sayfa=".$i."&volvo_search=".urlencode($volvo_search).">".$i."</a>\n"; 
}
?> </font></b></td>
                 </tr>
             </table></td>
           <tr bgcolor="#87CEFA">
             <td width="578" height="1" bgcolor="#003399">
               <p align="center">
                 <input type="submit" name="submit" value="SIPARIS ET" onClick="return confirm('Se&ccedil;tiğiniz &uuml;r&uuml;nleri sipariş listesine eklemek istiyor musunuz?')">
                 <input type="submit" name="sil" value="SEPETI BOSALT" onClick="return confirm('Se&ccedil;ili kayıtları silmek istiyor musunuz?')">
                 >                 
                 <font color="#FFFFFF" face="Arial, Helvetica, sans-serif"> </font>          
           <td width="56" bgcolor="#003399">           <td width="96" bgcolor="#003399"><input type=button value="Yazdır" onClick="myprint()">
         </tr>
         </table>
	   </form> 
	   </center> 
</body>
</HTML>           
Tırnağı kapatıyorum..

Kod: Tümünü seç

<?'; ?>
Maili gönderiyorum..
<?php mail($to, $subject, $message);?>
Bilginin efendisi olmak için çalışmanın uşağı olmak şarttır...
BALZAC
Bana bir harf öğretenin kulu kölesi olurum..
HZ.ALİ
Kullanıcı avatarı
salvation
Üye
Mesajlar: 303
Kayıt: 22 Mar 2004 01:57
Konum: Eskişehir
İletişim:

Mesaj gönderen salvation »

:arrow:1 Mailinin içinde form da mı göndereceksin? Eğer evetse

Kod: Tümünü seç

form  name="form1" method="post" action='<?=$_SERVER['PHP_SELF']?>'>
satırındaki

Kod: Tümünü seç

action='<?=$_SERVER['PHP_SELF']?>'
kodunun çalışması sözkonusu değil, çünkü <?=$_SERVER['PHP_SELF']?> yine kendi sayfasına verileri gönderecektir. Yani adam maili mynet te okuyorsa, form verileri yine mynetin sayfasına gönderecektir.

:arrow:2 Eğer php kodlarından dönen sonucu da göndermek istersen, bu şekilde göndermeni tavsiye etmem, çünkü <?php .. <?php ?> ?> gibi şeyler yapmak zorunda kalırsın ki bu da parse error demektir.
onun yerine

Kod: Tümünü seç

<?php
  $message = "<form  name='form1' method='post' action=".$_SERVER['PHP_SELF'].">";
  .
  .
?>
şeklinde kullanmanı tavsiye ederim.
AliRiza
Üye
Mesajlar: 172
Kayıt: 24 Kas 2004 10:57
Konum: İstanbul/Avcılar
İletişim:

cevap

Mesaj gönderen AliRiza »

aslında bana sadece veriler gerekli .Form önemli değil desem yeridir..Ayrıca

Kod: Tümünü seç

<?$message='?> Html ve php kodları <?';?>
Değişkene
atayacağım değerde <?php phpverileri echo vs.?> şeklinde ifadeler olması probleme yol açar mı..(Yani html ve php kodları dediğim kısımdalar)
Dediklerini deneyeceğim.Yardımın için sağol[/code]
Bilginin efendisi olmak için çalışmanın uşağı olmak şarttır...
BALZAC
Bana bir harf öğretenin kulu kölesi olurum..
HZ.ALİ
Kullanıcı avatarı
salvation
Üye
Mesajlar: 303
Kayıt: 22 Mar 2004 01:57
Konum: Eskişehir
İletişim:

Re: cevap

Mesaj gönderen salvation »

AliRiza yazdı:

Kod: Tümünü seç

<?$message='?> Html ve php kodları <?';?>


:arrow: Öncelikle <? $message=' ?> Html ve php kodları <?'; ?> bu kod bir soruna yol açmaz, ama yanlıştır, delphideki Degisken = 'begin yazi yazi end' gibi düşün. yani içerdeki kısım stringe dahildir, işlenmez.
AliRiza yazdı:

Kod: Tümünü seç

<?php phpverileri echo vs.?> şeklinde ifadeler olması probleme yol açar mı..(Yani html ve php kodları dediğim kısımdalar) 
[/quote] 

:arrow: Bu tür bir kullanımda herhangi sorun yok, ama php içinde sadece ekrana değişkeni yazdıracaksan <?=$degisken?> şeklinde kullanabilirsin. Ama bu şekilde içerde başka işlem yaptıramazsın.
AliRiza
Üye
Mesajlar: 172
Kayıt: 24 Kas 2004 10:57
Konum: İstanbul/Avcılar
İletişim:

cevap

Mesaj gönderen AliRiza »

salvation kardeş yardımın için çok teşekkür.Benim içerde işlem yapabilmem lazım.Yani ürün listeleri veritabanından geliyor.Müşteri istediği ürünü seçip sepetine atacak veya silecek.Bu işlemleri yapabilmem lazım..
Başka bir çözüm olabilir mi?
Bilginin efendisi olmak için çalışmanın uşağı olmak şarttır...
BALZAC
Bana bir harf öğretenin kulu kölesi olurum..
HZ.ALİ
onaydin

Mesaj gönderen onaydin »

Merhaba
diyelimki soyle bir sayfanız var

Kod: Tümünü seç

<?
$kyt = odbc_exec($bag,"select * from UYE");
?>
<html>
...
...
<?
while(odbc_fetch_row($kyt))
 {
?>
<tr>
   <td>
     <?=odbc_result(kyt,1)?>
  </td>
   <td>
     <?=odbc_result(kyt,2)?>
  </td>
<?  
 } //while bitt..
?>
</html>
bu sayfayı siz mail olarak gonermek istediginiz de ob_start fonksiyonunu kullanabilrsiniz

Kod: Tümünü seç

<?
ob_start();
$kyt = odbc_exec($bag,"select * from UYE");
?>
<html>
...
...
<?
while(odbc_fetch_row($kyt))
 {
?>
<tr>
   <td>
     <?=odbc_result(kyt,1)?>
  </td>
   <td>
     <?=odbc_result(kyt,2)?>
  </td>
<?  
 } //while bitt..
?>
</html>
 $buffer = ob_get_contents(); // yukardaki olayları buffer degiskenine atadık
 ob_end_clean(); // ob_start() ı bitirdik.
// header bilgilerini giriyoruz burdakiler eksik olaiblr siz olması gereknleri
eklersiniz.
 $headers .= "MIME-Version: 1.0\n";
 $headers .= "Content-Type: text/html; charset=iso-8859-9\n";
 mail("kimden","Html mail gonderiyorum",$buffer,$headers);
AliRiza
Üye
Mesajlar: 172
Kayıt: 24 Kas 2004 10:57
Konum: İstanbul/Avcılar
İletişim:

Mesaj gönderen AliRiza »

Yardımın için çok teşekkür ederim..
Yanlız dediğin kodu kullandım..
Html'yi kapattıktan sonra
aşağıdaki işlemleri yaptım.Ama ne hiç hata vermiyor,bomboş sayfa ekrana geliyor.
Hata neden kaynaklanıyor olabilir..

Kod: Tümünü seç

$buffer = ob_get_contents(); // yukardaki olayları buffer degiskenine atadık 
 ob_end_clean(); // ob_start() ı bitirdik. 
// header bilgilerini giriyoruz burdakiler eksik olaiblr siz olması gereknleri 
eklersiniz. 
 $headers .= "MIME-Version: 1.0\n"; 
 $headers .= "Content-Type: text/html; charset=iso-8859-9\n"; 
 mail("kimden","Html mail gonderiyorum",$buffer,$headers);
Bilginin efendisi olmak için çalışmanın uşağı olmak şarttır...
BALZAC
Bana bir harf öğretenin kulu kölesi olurum..
HZ.ALİ
onaydin

Mesaj gönderen onaydin »

Maili atıyo mu
AliRiza
Üye
Mesajlar: 172
Kayıt: 24 Kas 2004 10:57
Konum: İstanbul/Avcılar
İletişim:

teşekkürler..

Mesaj gönderen AliRiza »

Ob_end_clean() kullandığımda sayfa hiç görülmüyor.
ob_end_flush(); komutunu kullandığımda bir problem yaşamadım.
Mail içerisinde istediğim verileri gönderebildim.Tek problem javascriptlerin yazı olarak gelmesi.

Ayrıca
ob_end_clean()
Tampon'da birikenleri GONDERMEDEN, cikti kontrolunu sona erdir.
ob_end_flush()
Tampon'da biriktirilenleri gonderip, cikti kontrolunu sona erdir.


Yardımın için çok teşekkürler..
Bilginin efendisi olmak için çalışmanın uşağı olmak şarttır...
BALZAC
Bana bir harf öğretenin kulu kölesi olurum..
HZ.ALİ
Cevapla