E-posta Kütüphanesi
"Kontrolcü yöntemlerine parametre olarak enjekte edilen sınıfların örneklerine aynı zamanda görünmlerinden de erişebilirsiniz."
E-posta gönderme işlevini yerine getiren sınıftır.
# Kurulum
ZN dağıtımları için kurulum gerekmez.
↓ composer require znframework/package-email
# Yöntemler
Email::settings(array $settings = NULL) : this |
Email::to(mixed $to, string $name) : this |
Email::receiver(mixed $to, string $name) : this |
Email::replyTo(mixed $replyTo, string $name) : this |
Email::cc(mixed $cc, string $name) : this |
Email::bcc(mixed $bcc, string $name) : this |
Email::from(string $from, string $name = NULL, string $returnPath = NULL) : this |
Email::sender(string $from, string $name = NULL, string $returnPath = NULL) : this |
Email::subject(string $subject) : this |
Email::message(string $message) : this |
Email::content(string $message) : this |
Email::template(string $message, mixed $columnOrData, array $data = []) : this |
Email::templateMatch(string $content, array $data) : string |
Email::attachment(string $file, string $disposition = 'attachment', string $newName = NULL, mixed $mime = NULL) : this |
Email::addHeader(string $header, string $value) : this |
Email::send(string $subject = NULL, string $message = NULL) : bool |
Email::error(void) : mixed |
Email::driver(string $driver) : this |
Email::contentType(string $type = 'plain') : this |
Email::charset(string $charset = 'UTF-8') : this |
Email::priority(int $count = 3) : this |
Email::encodingType(string $type = '8bit') : this |
Email::multiPart(string $multiPart = 'related') : this |
Email::smtpHost(string $host) : this |
Email::smtpUser(string $user) : this |
Email::smtpDsn(bool $dsn = true) : this |
Email::smtpPassword(string $pass) : this |
Email::smtpPort(int $port = 587) : this |
Email::smtpTimeout(int $timeout = 10) : this |
Email::smtpKeepAlive(bool $keepAlive = true) : this |
Email::smtpEncode(string $encode) : this |
Email::lf(string $type) : this |
Email::cr(string $type) : this |
# Yapılandırma
string | $driver = 'smtp' | E-posta gönderiminin hangi sürücü ile yapılacağı belirtilir. |
Seçenekler | smtp, imap | |
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
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. Farklı bağlantılarla çoklu 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' => '[email protected]',
'smtpPassword' => '1234'
])
->sender('[email protected]', 'ZNTR')
->receiver('[email protected]')
->subject('Konu')
->message('Mesaj')
->send();
# To / Receiver
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('[email protected]', 'To Example');
Eğer çoklu alıcı bilgisi eklenecekse aşadağıdaki gibi kullanılabilir.
Email::to('[email protected]', 'To 1')
->to('[email protected]', 'To 2')
->to('[email protected]', 'To 3')
Dizi olarak da çoklu alıcı belirtilebilir.
Email::to(['[email protected]' => 'To1', '[email protected]' => 'To2']);
# ReplyTo
E-posta gönderen 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('[email protected]', 'To Example');
Eğer çoklu alıcı bilgisi eklenecekse aşağıdaki gibi kullanılabilir.
Email::replyTo('[email protected]', 'To 1')
->replyTo('[email protected]', 'To 2')
->replyTo('[email protected]', 'To 3')
Dizi olarak da çoklu alıcı belirtilebilir.
Email::replyTo(['[email protected]' => 'To1', '[email protected]' => 'To2']);
# CC
Ç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('[email protected]', 'To Example');
Eğer çoklu alıcı bilgisi eklenecekse aşağıdaki gibi kullanılabilir.
Email::cc('[email protected]', 'To 1')
->cc('[email protected]', 'To 2')
->cc('[email protected]', 'To 3')
Dizi olarak da çoklu alıcı belirtilebilir.
Email::cc(['[email protected]' => 'To1', '[email protected]' => 'To2']);
# BCC
Ç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('[email protected]', 'To Example');
Eğer çoklu alıcı bilgisi eklenecekse aşadağıdaki gibi kullanılabilir.
Email::bcc('[email protected]', 'To 1')
->bcc('[email protected]', 'To 2')
->bcc('[email protected]', 'To 3')
Dizi olarak da çoklu alıcı belirtilebilir.
Email::bcc(['[email protected]' => 'To1', '[email protected]' => 'To2']);
# From / Sender
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('[email protected]', 'Example', '[email protected]')
->to('[email protected]', 'To')
->content('Message')
->subject('Subject')
->send();
# Subject
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
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
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('[email protected]')
->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
Name {{$name}}
Email::subject('Example')->template('example', ['name' => 'ZN'])->send();
# TemplateMatch
Email::template() yönteminin harici olarak kullanımıdır. Gelen e-posta şablonunu parse eder.
Parametreler
string | $content | Parse edilecek içerik. |
array | $data | İçerikte yer alan anahtar ifadelerin değiştirileceği değerler dizisi. |
return | string |
Kullanımı
echo Email::templateMatch('Hello {{user}}', ['user' => 'ZN']);
# Attachment
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 = 'attachment' |
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ı. Bu parametre belirtilmezse dosyanın kendi ismi atanır. |
mixed | $mime = NULL | İçeriğin mime türü. Bu parametre belirtilmezse dosyanın uzantısına göre geçerli mime uzantısı atanır. |
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');
# AddHeader
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('[email protected]')
->from('[email protected]')
->addHeader('Header-Example', 'Header Example')
->addHeader('Data', 'Example Data')
->send();
# Send
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('[email protected]')
->to('[email protected]')
->send('this is Subject', 'this is message.');
# Error
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('[email protected]')
->to('[email protected]')
->send('this is Subject', 'this is message.');
output(Email::error());
# LF [8.10.0][2024-04-12]
E-posta'nın yapısını oluşturan parametreleri ayırmak için varsayılan olarak \n kullanılır. Bazı sistemlerde bu değerin \r\n olması gerekebilir. Bu yapılandırma geneli kapsayacaksa Config/Services.php:email dizisinden yapılandırılabilir.
Parametreler
string | $type | Kullanılabilir değerler: \n, \r veya \r\n seçenekleridir. |
return | this |
Kullanımı
Email::lf("\r\n")
->to('[email protected]')
->send('this is Subject', 'this is message.');
# CR [8.10.0][2024-04-12]
SMTP gönderiminde komutlara ayraç eklemek için varsayılan olarak \n kullanılır. Bazı sistemlerde bu değerin \r\n olması gerekebilir. Bu yapılandırma geneli kapsayacaksa Config/Services.php:email dizisinden yapılandırılabilir.
Parametreler
string | $type | Kullanılabilir değerler: \n, \r veya \r\n seçenekleridir. |
return | this |
Kullanımı
Email::cr("\r\n")
->to('[email protected]')
->send('this is Subject', 'this is message.');