Fonksiyon Kütüphanesi – Mail 1
Herbirimizin belki saatlerce belki günlerce üzerinde çalıştığı en büyük sorunlardan biriside üyelik panelini bitirdikten sonra üyelere aktivasyon maili gönderirken tamda işte gönderme kısmında çıkan sorun yani maillerimizin spam kutusuna düştüğünü görmemiz ne kadarda sinir ediyor değil mi bizleri ? Sizlerinde evet ya varmı buna bir çözüm dediğinizi duyar gibiyim ...
Şimdi öncelikle fonksiyon kütüphanesi oluşturduğumuzu eski yazılarımızdan biliyorsunuz zaten burada da phpdeki mail fonksiyonuna bir giriş ve gerçekten sorunsuz çalışan bir php mail gönderme sınıfı vercem sizlere .
Php'de mail fonksiyonun genel kullanımı şu şekilde oluyor
$to : Gönderilecek Mail Adresi .
$subject : Gönderilecek Mailin Konusu .
$message : Gönderilecek Mailin İçeriği .
$headers : Gönderilecek Mailin Bilgileri Ve Başlık Kısmı .
İşte php'de mail gönderebilmek aslında tamamen bu tek satır kod ile oluyor ama sorun ne kardeşim saatlerce uğraşılıyor o zaman bu mail sistemlerine yaw denirse işte sorun maillerin doğru düzgün spam sayılmadan gönderilemediği için çıkıyor cevabı verilir.
Biraz daha gelişmiş bir örnek verecek olursak mail fonksiyonuna oda şöyle :
-
<?php
-
// multiple recipients
-
$to = 'aidan@example.com' . ', '; // note the comma
-
$to .= 'wez@example.com';
-
-
// subject
-
$subject = 'Birthday Reminders for August';
-
-
// message
-
$message = '
-
<html>
-
<head>
-
<title>Birthday Reminders for August</title>
-
</head>
-
<body>
-
<p>Here are the birthdays upcoming in August!</p>
-
<table>
-
<tr>
-
<th>Person</th><th>Day</th><th>Month</th><th>Year</th>
-
</tr>
-
<tr>
-
<td>Joe</td><td>3rd</td><td>August</td><td>1970</td>
-
</tr>
-
<tr>
-
<td>Sally</td><td>17th</td><td>August</td><td>1973</td>
-
</tr>
-
</table>
-
</body>
-
</html>
-
';
-
-
// To send HTML mail, the Content-type header must be set
-
$headers = 'MIME-Version: 1.0' . "\r\n";
-
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
-
-
// Additional headers
-
$headers .= 'To: Mary <mary@example.com>, Kelly <kelly@example.com>' . "\r\n";
-
$headers .= 'From: Birthday Reminder <birthday@example.com>' . "\r\n";
-
$headers .= 'Cc: birthdayarchive@example.com' . "\r\n";
-
$headers .= 'Bcc: birthdaycheck@example.com' . "\r\n";
-
-
// Mail it
-
?>
İşte bu örnek ise 1. verdiğimiz örnekten yani tek satır koddan daha geniş bir örnek . Burada mail hem birden fazla kişiye gönderilmek isteniyor hemde mail HTML içerikli olarak gönderiliyor . Bunlarda yetmiyormuş gibi mailin başlık ($headers) kısmı dahada genişletiliyor . Ama işte sorun yine devam ediyor ne yaparsak yapalım bu tarz bir gönderim bile olsa gönderilen mailimiz spam kutusuna düşebilecektir . Çünkü hertürlü mail adresine gönderilen ( hotmail , gmail , mail , mynet .... ) maillere değişik cevaplar verirler ve algılamaları farklı olur farklı kritlere göre spam kutusuna koyar veya normal gelen kutumuza koyar biz bu özelliklere uyumlu hale getirmezsek kodlarımızı maillerimiz hep spam kutusuna düşmeye mahkum kalacaktır .
İşte gelelim o son kısıma ve son fonksiyon sınıfımıza ben internette gezerken rastladığım bir kodu sizlerle paylaşmak istiyorum . Bu fonksiyonu gmail'de deneme fırsatım oldu ve sorunsuz bir şekilde gmail ' in posta kutusuna gönderdiğim maillerim düştü .
Buyrun arkadaşlar bence şimdilik sorunsuz çalışan php mail sınıfı :
-
<?php
-
class epostaGonder
-
{
-
var $dil;
-
var $mailhudut;
-
var $headerhudut;
-
var $to;
-
var $from;
-
var $reply;
-
var $return;
-
var $subject;
-
var $message;
-
var $header;
-
var $govde;
-
var $file;
-
var $kopya;
-
var $gizlikopya;
-
-
function epostaGonder()
-
{
-
$this->dil="iso-8859-9";
-
-
}
-
-
-
-
function kime($eposta)
-
{
-
$this->to=$eposta;
-
}
-
-
function bunlaradaGonder($eposta)
-
{
-
$this->cc[]=$eposta;
-
}
-
-
function bunlaradaGizliGonder($eposta)
-
{
-
$this->bcc[]=$eposta;
-
}
-
-
function kimden($isim,$eposta)
-
{
-
$this->from=$isim."<".$eposta.">";
-
}
-
-
function cevap($rply)
-
{
-
$this->reply=$rply;
-
}
-
-
function iade($turn)
-
{
-
$this->return=$turn;
-
}
-
-
function konu($sbj)
-
{
-
$this->subject=$sbj;
-
}
-
-
function mesaj($msg)
-
{
-
$this->message=$msg;
-
}
-
-
function dosya($fl) /* Tam Yolu */
-
{
-
$this->file[]=$fl;
-
}
-
-
function headers()
-
{
-
$this->kopyalariHazirla();
-
$this->header='MIME-Version:1.0'.STR;
-
$this->header.='From:'.$this->from.STR;
-
{
-
$this->header.='Cc:'.$this->kopya.STR;
-
}
-
{
-
$this->header.='Bcc:'.$this->gizlikopya.STR;
-
}
-
$this->header.='Reply-To:'.$this->reply.STR;
-
$this->header.='Return-Path:'.$this->return.STR;
-
$this->header.='Content-Type:multipart/mixed;'.STR.TAB.
-
'boundary="'.$this->mailhudut.'"'.STR;
-
}
-
-
function body()
-
{
-
$this->govde='This is a multipart message in MIME format'.STR.STR;
-
$this->govde.='--'.$this->mailhudut.STR;
-
$this->govde.='Content-Type:multipart/alternative;'.STR.TAB.
-
'boundary="'.$this->headerhudut.'"'.STR.STR;
-
$this->govde.='--'.$this->headerhudut.STR;
-
$this->govde.='Content-Type:text/plain;'.STR.TAB.
-
'charset="'.$this->dil.'"'.STR.
-
'Content-Transfer-Encoding:7bit'.STR.STR;
-
$this->govde.='--'.$this->headerhudut.STR;
-
$this->govde.='Content-Type:text/html;'.STR.TAB.
-
'charset="'.$this->dil.'"'.STR.
-
'Content-Transfer-Encoding:7bit'.STR.STR;
-
$this->govde.='--'.$this->headerhudut.'--'.STR.STR;
-
{
-
for($i=0;$i<count($this->file);$i++)
-
{
-
{
-
-
-
$this->govde.='--'.$this->mailhudut.STR;
-
$this->govde.='Content-Type:application/octet-stream;'.STR.TAB.
-
$this->govde.='Content-Transfer-Encoding:base64'.STR;
-
$this->govde.='Content-Disposition:attachment;'.STR.TAB.
-
$this->govde.=$this->ek.STR.STR;
-
-
}
-
else
-
{
-
}
-
}
-
-
-
}
-
-
$this->govde.='--'.$this->mailhudut.'--'.STR.STR;
-
}
-
-
-
-
function kopyalariHazirla()
-
{
-
{
-
$this->kopya="";
-
for($i=0;$i<count($this->cc);$i++)
-
{
-
if($i> 0)
-
{
-
$this->kopya.=",";
-
}
-
-
$this->kopya.=$this->cc[$i];
-
}
-
}
-
-
{
-
$this->gizlikopya="";
-
for($i=0;$i<count($this->bcc);$i++)
-
{
-
if($i> 0)
-
{
-
$this->gizlikopya.=",";
-
}
-
-
$this->gizlikopya.=$this->bcc[$i];
-
}
-
}
-
}
-
-
function gonder()
-
{
-
$this->headers();
-
$this->body();
-
{
-
echo "Mail Gitti";
-
}
-
else
-
{
-
echo "Bir sorun Oluştu";
-
}
-
-
}
-
-
-
-
}
-
# Örnek
-
-
$posta = new epostaGonder();
-
$posta->kime("gonderilecekmail@mail.com");
-
$posta->kimden("polat","polat@falancamail.com");
-
$posta->cevap("polat@falancamail.com");
-
$posta->iade("polat@falancamail.com");
-
/*
-
$posta->bunlaradaGonder("baskabirmail@baskabirmail.com");
-
$posta->bunlaradaGizliGonder("baskabirmail@baskabirmail.com");
-
$posta->dosya("../dosya.pdf");
-
*/
-
$posta->konu("konu");
-
$posta->mesaj("mesaj");
-
$posta->gonder();
-
-
?>
Teşekkürler POLAT ,
Herkesin kesin sorunlarından birini bu şekilde çözmüş olduk sanırım .
20 views
[...] için araştırmalar içine girdik ve hep olumsuzlukla sonuçlandı belkide . Daha öncede ” Fonksiyon Kütüphanesi – Mail 1 ” yazısında sizlere bir kaç örnekte bulunmuş ve bir kaç araştırmalarımızın sonucunda [...]