E-posta Kütüphanesi


    × Bunları biliyor muydunuz?
".htaccess dosyasının içeriğini yapılandırmak için Settings/Htaccess.php yapılandırma dosyası kullanılır."


E-posta gönderme işlevini yerine getiren sınıftır.

 

 

# Kurulum


ZN SE ve ZN CE dağıtımları için terminal kurulum komutu.

↓ composer require znframework/package-email

 

 

# Yöntemler


This settings(Array $settings = NULL)
This to(Mixed $to, String $name)
This receiver(Mixed $to, String $name)
This replyTo(Mixed $replyTo, String $name)
This cc(Mixed $cc, String $name)
This bcc(Mixed $bcc, String $name)
This from(String $from, String $name = NULL, String $returnPath = NULL)
This sender(String $from, String $name = NULL, String $returnPath = NULL)
This subject(String $subject)
This message(String $message)
This content(String $message)
This template(String $message, Mixed $columnOrData, Array $data = [])
This attachment(String $file, String $dis = NULL, String $newName = NULL, Mixed $mime = NULL)
Mixed attachmentContentId(String $filename)
This addHeader(String $header, String $value)
Bool send(String $subject = NULL, String $message = NULL)
Mixed error(Void)
This driver(String $driver)
This contentType(String $type = 'plain')
This charset(String $charset = 'UTF-8') 
This priority(Int $count = 3)
This encodingType(String $type = '8bit')
This multiPart(String $multiPart = 'related')
This smtpHost(String $host)
This smtpUser(String $user)
This smtpDsn(Bool $dsn = true)
This smtpPassword(String $pass)
This smtpPort(Int $port = 587)
This smtpTimeout(Int $timeout = 10)
This smtpKeepAlive(Bool $keepAlive = true)
This smtpEncode(String $encode)

 

 

# Yapılandırma


File: Config/Services.php
Email
String $driver = 'smtp' E-posta gönderiminin hangi sürücü ile yapılacağı belirtilir.
Seçenekler smtp, mail, send, imap, pipe
SMTP
String $host = '' E-posta sunucusu adı.
String $user = '' E-posta kullanıcı adı.
String $password = '' E-posta kullanıcı şifresi.
Int $port = 587 Sunucu bağlantı portu.
Bool $keepAlive = false Kalıcı SMTP bağlantılarını etkinleştir.
Int $timeout = 10 Bağlantı zaman aşımı süresi.
String $encode = '' SMTP bağlantı şifreleme türü.
Seçenekler tls, ssl
Bool $dsn = false İletiyi sunucudan bildir.
Bool $auth = true E-posta kullanıcı oturumunun açık tutulması.
General
String $senderMail = '' Ön tanımlı gönderici e-posta adresi.
String $senderName = '' Ön tanımlı gönderici adı.
Int $priority = 3 Öncelik seviyesi
Seçenekler 1 = En yüksek. 5 = En düşük. 3 = Normal.
String $charset = 'UTF-8' E-posta karakter seti.
String $contentType = 'html' E-posta içerik türü. 
Seçenekler html, plain
String $multiPart = 'mixed'  
Seçenekler mixed, related, alternative
String $xMailer = 'ZN'  
String $encoding = '8bit' Kodlama türü.
Seçenekler 8bit, 7bit
String $mimeVersion = '1.0' Mime versiyonu
String $mailPath = '/usr/sbin/sendmail' Sunucu e-posta gönderim yolu.

 

 

# Settings (ZN >= 3.0.0)


E-posta gönderim ayarları normalde Config/Services.php dosyası üzerinden yapılmaktadır. Ancak bazı durumlarda ayarları gönderim esnasında yapılandırmanız gerekirse bu yöntem kullanılır. Genellikle ön tanımlı ayarlar yeterli olur. Farklı bağlantılarla birden e-posta gönderimi gerekirse bu yöntem kullanılır.

Parmetreler

Array $settings Yapılandırılacak ayarlar.
Return This

Kullanımı

Email::settings
     ([
         'smtpHost'     => 'mail.example.com', 
         'smtpUser'     => 'example@example.com', 
         'smtpPassword' => '1234'
     ])
     ->sender('bilgi@zntr.net', 'ZNTR')
     ->receiver('ornek@ornek.com')
     ->subject('Konu')
     ->message('Mesaj')
     ->send();

 

 

# To / Receiver (ZN >= 1.0.0)


E-posta alıcı bilgisi oluşturumak için kullanılırlar. Her iki yöntemin görevide aynıdır.

Parametreler

Mixed $toMail Alıcı e-posta adresi. Çoklu gönderim yapılacaksa bu parametre dizi kabul eder.
String $toName Alıcı adı.
Return This

Kullanımı

Email::to('to@example.com', 'To Example');

Eğer çoklu alıcı bilgisi eklenecekse aşadağıki gibi kullanılabilir.

Email::to('to1@example.com', 'To 1')
     ->to('to2@example.com', 'To 2')
     ->to('to3@example.com', 'To 3')

Dizi olarakta çoklu alıcı belirtilebilir.

Email::to(['to1@example.com' => 'To1', 'to2@example.com' => 'To2']);

 

 

# ReplyTo (ZN >= 1.0.0)


E-posta gönderene kişiye gönderim için alıcı bilgisi oluşturur.

Parametreler

Mixed $toMail Alıcı e-posta adresi. Çoklu gönderim yapılacaksa bu parametre dizi kabul eder.
String $toName Alıcı adı.
Return This

Kullanımı

Email::replyTo('to@example.com', 'To Example');

Eğer çoklu alıcı bilgisi eklenecekse aşadağıki gibi kullanılabilir.

Email::replyTo('to1@example.com', 'To 1')
     ->replyTo('to2@example.com', 'To 2')
     ->replyTo('to3@example.com', 'To 3')

Dizi olarakta çoklu alıcı belirtilebilir.

Email::replyTo(['to1@example.com' => 'To1', 'to2@example.com' => 'To2']);

 

 

# CC (ZN >= 1.0.0)


Çoklu e-posta alıcısı oluşturmak için kullanılır.

Parametreler

Mixed $toMail Alıcı e-posta adresi. Çoklu gönderim yapılacaksa bu parametre dizi kabul eder.
String $toName Alıcı adı.
Return This

Kullanımı

Email::cc('to@example.com', 'To Example');

Eğer çoklu alıcı bilgisi eklenecekse aşadağıki gibi kullanılabilir.

Email::cc('to1@example.com', 'To 1')
     ->cc('to2@example.com', 'To 2')
     ->cc('to3@example.com', 'To 3')

Dizi olarakta çoklu alıcı belirtilebilir.

Email::cc(['to1@example.com' => 'To1', 'to2@example.com' => 'To2']);

 

 

# BCC (ZN >= 1.0.0)


Çoklu e-posta alıcısı oluşturmak için kullanılır. CC' den farkı e-posta adresleri alıcılar tarafından görülemez.

Parametreler

Mixed $toMail Alıcı e-posta adresi. Çoklu gönderim yapılacaksa bu parametre dizi kabul eder.
String $toName Alıcı adı.
Return This

Kullanımı

Email::bcc('to@example.com', 'To Example');

Eğer çoklu alıcı bilgisi eklenecekse aşadağıki gibi kullanılabilir.

Email::bcc('to1@example.com', 'To 1')
     ->bcc('to2@example.com', 'To 2')
     ->bcc('to3@example.com', 'To 3')

Dizi olarakta çoklu alıcı belirtilebilir.

Email::bcc(['to1@example.com' => 'To1', 'to2@example.com' => 'To2']);

 

 

# From / Sender (ZN >= 1.0.0)


E - posta gönderici bilgisi oluşturmak için kullanılır.

Parametreler

String $fromMail Gönderen e-posta adresi.
String $fromName = NULL Gönderen adı.
String $returnPath = NULL Teslim edilmeyen e-postaların hangi adrese yönlendirileceğini belirtir.
Return This

Kullanımı

Email::from('from@example.com', 'Example', 'from2@example.com')
     ->to('to@example.com', 'To')
     ->content('Message')
     ->subject('Subject')
     ->send();

 

 

# Subject (ZN >= 1.0.0)


Gönderimi yapılacak e-posta adresinin konusu belirtmek için kullanılır.

Parametreler

String $subject Konu.
Return This

Kullanımı

Email::subject('This E-posta is Examples');

 

 

# Message / Content (ZN >= 1.0.0)

Gönderimi yapılacak e-posta adresinin içeriğini belirtmek için kullanılır. Yukarıdaki her iki yönteminde görevi aynıdır.

Parametreler

String $content İçerik.
Return This

Kullanımı

Email::subject('This Mail is Examples')
     ->message('Hi, This mail is examples.');

 

 

# Template (ZN >= 5.3.7)


Bu yöntem e-posta içeriğini belli bir şablon formunda göndermek için kullanılır. Bu yöntem kullanıldığı zaman message() veya content() yöntemi kullanılmaz. Biçimli içerikler göndermek için oldukça kullanışlıdır. Bir kaç formda kullanımı vardır. İsterseniz veritabanına kaydettiğiniz ya da Resources/Templates/ dizinlerindeki şablonları gönderim için kullanabilirsiniz.

Veritabanı Şablonları ile Kullanım

Bu kullanım veritabanında kayıtlı e-posta şablonlarınız içindir. Şablonlarınızı biçimlendirmek için kullanacağınız anahtar ifadeler {{key}} formunda kullanılmalıdır.

Parametreler

String $tableAndColumn Tablo ve kolon adı. Şablonun hangi tablo ve kolondan çekileceğidir. Kullanımı: table_name:column_name
String $whereColumnAndValue Hangi şablonun kullanılacağıdır. Kullanımı: column_name:value
Array $data = [] Şablon ile eşlecek data. Şablondaki {{name}} gibi ifadelerle eşleşme sağlar.
Return This

Kullanımlar

Bu kullanım şablonu doğrudan veritabanından çekmek için kullanılır.

+----+---------+----------------+-----------------+
| ID | NAME    | CONTENT        | EMAIL_TEMPLATES |    
+----+--------------------------+-----------------+
| 1  | example | Hello {{name}}                   |
+----+--------------------------------------------+ 
Email::sender('robot@znframework')
     ->receiver('example@znframework.com')
     ->subject('Example')
     ->template('email_templates:content', 'name:example', 
     [
         'name'  => 'ZN'
     ])
     ->send();

Dizin Şablonları ile Kullanım

External/Resources/Templates/ veya Project/Resources/Templates/ dizinleri içine kaydedilen şablon dosyaları kullanılır.

Parametreler

String $tableAndColumn Gönderilecek şablon adı. Belirtilen dizinlerdeki dosya adı.
Array $data = [] Gönderilecek data.
Return This

Kullanımlar

Dosya: Resources/Templates/example.wizard.php
Name {{$name}}
Dosya: Controllers/Home.php
Email::subject('Example')->template('example', ['name' => 'ZN'])->send();

 

 

# Attachment (ZN >= 1.0.0)


E-posta gönderimi sırasında e-postaya ek eklemek için kullanılır. Bu ekler dosya, resim vb... olabilir.

Parametreler

String $file Dosya yolu/adı.
String $disposition = NULL Ekin eğilimi. Çoğu e-posta istemcisi burada kullanılan MIME belirtiminden bağımsız olarak kendi kararını verir.
Seçenekler Content Disposition Values
String $newName = NULL Dosyanın e-postada görünen adı.
Mixed $mime = NULL İçeriğin mime türü. Bu parametreye Settings/Expressions.php dosyasına sizin ekleyeceğiniz mime türleri değer olarak verilebilir.
Return This

Kullanımı

Email::attachment('image.jpg');
     ->attachment('text.txt', 'inline', 'content.txt', 'text/plain');
Email::attachment('example/files/word.pdf', 'attachment', 'word.pdf', 'pdf');

 

 

# AttachmentContentID (ZN >= 1.0.0)


Resimli bir ekin HTML'ye yerleştirilmesini sağlayan bir ekin Content-ID'sini döndürür.

Parametreler

String $file Dosya yolu/adı.
Return Mixed

Kullanımı

Email::attachment('image.jpg')
     ->to('to@example.com')
     ->from('from@example.com')
     ->message(Html::image('Content-ID:' . Email::attachmentContentId('image.jpg')))
     ->send();

 

 

# AddHeader (ZN >= 1.0.0)


E-postaya üst bilgi eklemek için kullanılabilir.

Parametreler

String $key Eklenecek üst bilgi anahtarı.
String $value Üst bilginin içereceği değer.
Return This

Kullanımı

Email::attachment('image.jpg')
     ->to('to@example.com')
     ->from('from@example.com')
     ->addHeader('Header-Example', 'Header Example')
     ->addHeader('Data', 'Example Data')
     ->send();

 

 

# Send (ZN >= 1.0.0)


E-posta gönderimini sağlayan nihai yöntemdir. Her e-posta gönderimi bu yöntemle bitmelidir.

Parametreler

String $subject = NULL subject() yöntemi yerine kullanılabilir.
String $message = NULL message() yöntemi yerine kullanılabilir.
Return Bool

Kullanımı

Email::from('from@example.com')
     ->to('to@example.com')
     ->send('This is Subject', 'This is message.');

 

 

# Error (ZN >= 1.0.0)


E-posta gönderimi esnasında herhangi bir sorun oluştuğunda sorunun ne olduğu hakkında bilgi veren yöntemdir.

Parametreler

Void
Return Mixed

Kullanımı

Email::from('from@example.com')
     ->to('to@example.com')
     ->send('This is Subject', 'This is message.');

output(Email::error());