IRCForumları - IRC ve mIRC Kullanıcılarının Buluşma Noktası
  sohbet

 Kayıt ol  Topluluk
Yeni Konu aç Cevapla
 
LinkBack Seçenekler Stil
Alt 26 Eylül 2008, 03:59   #1
Çevrimdışı
Kullanıcıların profil bilgileri misafirlere kapatılmıştır.
IF Ticaret Sayısı: (0)
IF Ticaret Yüzdesi:(%)
PHP ile Posta Gönderme




PHP ile Posta Gönderme

Elektronik posta, kuşkusuz Internet üzerindeki bir numaralı iletişim aracıdır. PHP ile posta gönderme işlemi, tek bir fonksiyon kullanımı ile halledilebilecek kadar kolaylaştırılmıştır. Yalnız uyaralım, aşağıda gördüğünüz örnek kodların UNIX / Windows 2000 ve Windows 95 / 98 sistemlerde çalışma şekilleri farklıdır. UNIX türevlerinde ve Windows 2000’nde, e-posta işlemlerinin yapılması için gerekli olan POP3 ve SMTP posta sunucuları önyüklüdürler. Windows 95 ve 98 sistemlerde ise, bu sunucular olmadığı için, bu sunucuları yüklemeden örnek kodları çalıştırmanız mümkün değildir

Mail Fonksiyonu
Mail Fonksiyonu’nun kullanım şekli aşağıdaki gibidir:

Mail (kime, konu, mesaj, [ek_başlıklar]);

Bu fonksiyon ile e-posta otomatik olarak "kime" kısmındaki kişiye veya kişilere gönderilir. Her bir virgül (,) ayrı bir kısmı göstermektedir. Örneğin:

mail(" [Linkleri Sadece Üyelerimiz Görebilir... ].tr", "Deneme", "Merhaba\nBu bir denemedir\nHoşçakalın.");



Ek başlıkları da yazarsak örneğimiz şöyle olacaktır:

Mail (" [Linkleri Sadece Üyelerimiz Görebilir... ].tr", "Deneme", "Merhaba\nBu bir denemedir\nHoşçakalın.", "From: [Linkleri Sadece Üyelerimiz Görebilir... ]\nReply-To:
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.
.tr
");

Ek Başlıkların tümünün daima çift tırnak içinde olduğuna ve birbirlerinden "\n" ile ayrıldıklarına dikkat edin. Bu yazım şekli mesajı oluştururken de geçerlidir. Mesajı oluştururken bir alt satıra geçmek istediğinizde her zaman “\n” karakterini kullanmalısınız.

Posta yollarken en sık kullanılan başlıkları listeleyelim:
From (Kimden)
Reply-to (Cevabın yollanacağı adres)
Cc (Carbon Copy - Karbon kopya)
Bc (Blind Copy - Kör Kopya - gönderdiğiniz e-posta adreslerini gizler)

Tüm bunları arka arkaya kullanabilirsiniz.

E-posta için temel olarak iki şey gereklidir: Bunlardan ilki, bir formdan gerekli Anahtar= Değer (Key= Value) çiftlerini almak ve php dosyasına iletmektir. Bildiğiniz gibi Internet üzerinde tüm girdiler bu şekilde gönderilmektedir. Bunu bildiğinizi varsayarak aşağıdaki örnekleri inceleyelim.

Önce e-posta gönderilecek formumuzu hazırlayalım ve dosyamızı eposta.php olarak saklayalım:

<form name="eposta" action="form.php" method="post">
<table border="0" cellspacing="2" cellpadding="2" align="left">
<tr>
<td colspan="2">
<div align="center">
<p align="left">Sitemizi inşa etmede ve yenilemede görüşleriniz
çok önemlidir. Lütfen doldurmaktan çekinmeyin.</p>
</div>
</td>
</tr>
<tr>
<td width="98">
<div align="right">Ad Soyad: </div>
</td>
<td width="450">
<input type="text" name="adsoyad"><!-- 1. Değişken "adsoyad" -->
</td>
</tr>
<tr>
<td width="98">
<div align="right">E-Posta: </div>
</td>
<td width="450">
<input type="text" name="eposta"><!-- 2. Değişken "eposta" -->
</td>
</tr>
<tr align="left" valign="top">
<td width="98">
<div align="right">Yorumlarınız:</div>
</td>
<td width="450">
<!-- 3. Degisken "yorum" -->
<textarea name="yorum" cols="55" rows="10"></textarea>
<!-- 4. Degisken "kime" -->
<br><input type="hidden" name="kime" value="
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.
.tr">

<!-- 5. Degisken "konu" -->
<input type="hidden" name="konu" value="Web Sitemden">
<!-- 6. Degisken "gonder" ancak bunlar sabittir. php uzantili dosyamizda degisken atamamiza gerek yok. -->
<input type="submit" name="gonder" value="Gönder">
<input type="reset" name="Submit" value="Sil">
</p>
<p style="font-size: 10px;">Lütfen 20 sn. bekleyin. Tekrar Gönder butonuna basmanıza
gerek yoktur.</p>
</td>
</tr>
</table>
</form>


Her zaman için öncelikle formunuzdaki Anahtar = Değer çiftlerini aklınızda tutarsanız, PHP'de değişkenleri atamanız çok kolaylaşacaktır.

<input type="hidden" name="kime" value="
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.
.tr">

Dikkat ederseniz "kime" anahtarına "
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.
.tr” değerini atadım.


<input type="hidden" name="konu" value="Web Sitemden">
"konu" anahtarına da "Web Sitemden" değerini atadım.

Değerleri bu şekilde atamamızın amacı, ileride sadece bu iki alanı değiştirerek farklı formlar yaratabilmenizi sağlamak. Böylece hem daha anlaşılır bir sisteminiz olacak, hem de yeni bir form yaratmanız daha az zamanınızı alacak.

Yukardaki formda yer alan değişkenleri sıralayalım:

1.adsoyad (ziyaretçi dolduracak)
2.eposta (ziyaretçi dolduracak)
3.yorum (ziyaretçi dolduracak)
4.kime (
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.
.tr)

5.konu (Web sitemden)

Şimdi bu verileri kullanarak elektronik postamızı hazırlayıp yollayacak PHP kodumuzu yazalım:


<?php
$mesaj = "Ad Soyad: " . $adsoyad . "\n";
$mesaj .= "E-Posta: " . $eposta . "\n";
$mesaj .= "Yorum: " . $yorum . "\n";
$extra_baslik = "From: $kime\n";
$extra_baslik .= "Reply-To: $eposta\n";
$extra_baslik .= "Bcc:
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.
.tr\n";

$extra_baslik .= "¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤-Type:text/plain; charset=\"iso-8859-9\"\n";
$extra_baslik .= "¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤-Transfer-Encoding: 8bit\n";
mail($kime, $konu, $mesaj, $extra_baslik);
?>

Önce size yabancı gelebilecek birkaç kullanım şeklini açıklayalım.

Eğer Perl veya C tabanlı bir kullanıcı iseniz, “.=” kullanımına zaten aşinasınız demektir. Basic benzeri dillerden gelen kullanıcılar için de onlara tanıdık gelecek kullanım örneğini verelim:
$mesaj = $mesaj . “E-Posta: “ . $eposta . “\n”;
PHP’de, Basic benzeri dillerden farklı olarak, değişkenleri birbirlerine eklemek için nokta kullanılır. PHP ile her iki kullanım şekli de doğrudur. Biz bütün örneklerimizde “.=” biçimini kullanacağız.
HTML sayfalarını yayınlarken geçerli olan bütün kurallar, e-posta hazırlarken de geçerlidir: İçeriğin hangi karakter seti ile okunması gerektiğini mutlaka belirtmelisiniz, aksi takdirde e-postanız farklı e-posta istemcilerinde farklı sonuçlar verecektir! Bu sorunu çözmek için, $extra_baslik değişkenine iki yeni satır ekledik: ¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤-Type ve ¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤-Transfer-Encoding.
Dikkat ettiyseniz, postanın BCC bölümüne de bir e-posta adresi yazdık. Böylece yollanan bütün formların bir kopyasının da “
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.
.t
r” adresine gitmesini sağlamış olduk.

Son olarak unutmamamız gereken bir şey daha var. Formu gönderdikten sonra, ziyaretçimize e-postanın gönderildiğine ilişkin bir mesaj vermeliyiz. Bunun için yukarıdaki kodumuza dokunmadan onu HTML kodlarıyla sarıp, gonder.php ismiyle kaydedeceğiz. Gonder.php dosyasının son hali aşağıdaki gibi olacaktır:

<?php
$mesaj = "Ad Soyad: " . $adsoyad . "\n";
$mesaj .= "E-Posta: " . $eposta . "\n";
$mesaj .= "Yorum: " . $yorum . "\n";
$extra_baslik = "From: $kime\n";
$extra_baslik .= "Reply-To: $eposta\n";
$extra_baslik .= "Bcc:
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.
.tr\n";

$extra_baslik .= "¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤-Type:text/plain; charset=\"iso-8859-9\"\n";
$extra_baslik .= "¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤-Transfer-Encoding: 8bit\n";
mail($kime, $konu, $mesaj,$extra_baslik);
?>
<html>
<head>
****** http-equiv="¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤-Type" ¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤="text/html; charset=ISO-8859-9">
****** http-equiv="¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤-Type" ¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤="text/html; charset=windows-1254">
<title>Sayın <?php echo($adsoyad) ?>, formunuz başarıyla alındı.</title>
</head>
<body>
<b>Sayın <font color="Purple"><?php echo($adsoyad); ?></font>,
formunuz <b><font color="Purple">
<?php echo($kime); ?></font></b> adresine gönderilmiştir.
Teşekkür ederiz.</b>
</body>
</html>


Başta da belirttiğimiz gibi, bu kodları denemek için iki şansınız var, Linux veya Windows 2000 kullanıcısı iseniz, daha şanslısınız, sisteminizde zaten yüklü bir SMTP sunucu olma ihtimali çok yüksek. Eğer Windows 95 / 98 kullanıcısı iseniz,
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.
adresinden, Windows 95 / 98 altında kullanabileceğiniz SMTP sunucusunun adresini ve kurulum bilgilerini gerekli bütün detaylarıyla birlikte bulabilirsiniz.


İkinci bir şansınız daha olduğunu söyledik, o da Internet’e bağlı olmak koşuluyla kullanabileceğiniz kendi ISP’nizin SMTP sunucusu, ya da Yahoo! gibi ücretsiz posta hizmeti veren ve SMTP adresi bilinen bir site. Her iki olanak için de yapmanız gereken değişikliklere bakalım. Windows altında çalışıyorsanız, C:\Windows\php.ini dosyasını açın ve [mail function] başlığı altındaki ayarlarınızı şu şekilde değiştirin:

Kullandığınız bilgisayarda kurulu bir SMTP sunucusu varsa:
SMTP = ¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤host ;for win32 only (Kendi serverınızın smtp ayarını yazın)
sendmail_from=
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.
.tr ;for win32 only (Email adresinizi yazın)


Kullandığınız bilgisayarda kurulu bir SMTP sunucusu yoksa:
SMTP = smtp.mail.yahoo.com (Yahoo! dan bir e-posta adresiniz olduğunu varsayıyoruz)
sendmail_from=
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.
.tr


Yahoo!'nun SMTP'sini kullanmak istiyorsanız, Yahoo! sitesindeki hesabınıza girin ve Options (Seçenekler) kısmından POP3 ile e-posta alacağınızı belirtin. Yukardaki satırları php.ini dosyanıza ekledikten sonra, Yahoo! nun SMTP sunucusunu kullanarak e-posta yollayabilirsiniz.

Formu istediğiniz gibi çoğaltabilirsiniz. Gerisi sizin yaratıcılığınıza kalmıştır.

Alıntıdır.

 
Alıntı ile Cevapla

IRCForumlari.NET Reklamlar
sohbet odaları sohbet odaları Benimmekan Mobil Sohbet
Cevapla

Etiketler
gönderme, ile, php, posta


Konuyu Toplam 1 Üye okuyor. (0 Kayıtlı üye ve 1 Misafir)
 

Yetkileriniz
Konu Acma Yetkiniz Yok
Cevap Yazma Yetkiniz Yok
Eklenti Yükleme Yetkiniz Yok
Mesajınızı Değiştirme Yetkiniz Yok

BB code is Açık
Smileler Açık
[IMG] Kodları Açık
HTML-Kodu Kapalı
Trackbacks are Kapalı
Pingbacks are Açık
Refbacks are Açık


Benzer Konular
Konu Konuyu Başlatan Forum Cevaplar Son Mesaj
Toplu E-Posta Gönderme hAte PHP 0 15 Ocak 2015 06:38
ASP de Mail Gönderme SeckiN ASP/ASP.NET 0 03 Aralık 2014 15:44
Posta Borusu - Posta Borusu Özellikleri - Müzik Aletleri Liaaa Hobiler 0 15 Mayıs 2012 15:20
Asp ile Sms Gönderme AzagThoth ASP/ASP.NET 3 27 Ağustos 2008 10:16
ses gönderme HaLiKaRNaSX mIRC Scripting Sorunları 2 08 Mart 2006 22:42