E-posta Kütüphanesi
E-posta gönderme işlevini yerine getiren sınıftır. # Kurulum Bu bileşen KUT ile birlikte gelir; ayrıca kurulum gerektirmez. ↓ Paket KUT ile birlikte gelir. # Yöntemler Email::settings(array $se…
This article is currently available in Turkish. Its English translation is being prepared.
E-posta gönderme işlevini yerine getiren sınıftır.
Kurulum
Bu bileşen KUT ile birlikte gelir; ayrıca kurulum gerektirmez.
↓ Paket KUT ile birlikte gelir.
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 = 'KUT' | |
| 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' => 'example@example.com',
'smtpPassword' => '1234'
])
->sender('bilgi@example.com', 'KUT')
->receiver('ornek@ornek.com')
->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('to@example.com', 'To Example');
Eğer çoklu alıcı bilgisi eklenecekse aşadağıdaki gibi kullanılabilir.
Email::to('to1@example.com', 'To 1')
->to('to2@example.com', 'To 2')
->to('to3@example.com', 'To 3')
Dizi olarak da çoklu alıcı belirtilebilir.
Email::to(['to1@example.com' => 'To1', 'to2@example.com' => '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('to@example.com', 'To Example');
Eğer çoklu alıcı bilgisi eklenecekse aşağıdaki gibi kullanılabilir.
Email::replyTo('to1@example.com', 'To 1')
->replyTo('to2@example.com', 'To 2')
->replyTo('to3@example.com', 'To 3')
Dizi olarak da çoklu alıcı belirtilebilir.
Email::replyTo(['to1@example.com' => 'To1', 'to2@example.com' => '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('to@example.com', 'To Example');
Eğer çoklu alıcı bilgisi eklenecekse aşağıdaki gibi kullanılabilir.
Email::cc('to1@example.com', 'To 1')
->cc('to2@example.com', 'To 2')
->cc('to3@example.com', 'To 3')
Dizi olarak da çoklu alıcı belirtilebilir.
Email::cc(['to1@example.com' => 'To1', 'to2@example.com' => '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('to@example.com', 'To Example');
Eğer çoklu alıcı bilgisi eklenecekse aşadağıdaki gibi kullanılabilir.
Email::bcc('to1@example.com', 'To 1')
->bcc('to2@example.com', 'To 2')
->bcc('to3@example.com', 'To 3')
Dizi olarak da çoklu alıcı belirtilebilir.
Email::bcc(['to1@example.com' => 'To1', 'to2@example.com' => '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('from@example.com', 'Example', 'from2@example.com')
->to('to@example.com', '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@kutframework')
->receiver('example@kutframework.com')
->subject('Example')
->template('email_templates:content', 'name:example',
[
'name' => 'KUT'
])
->send();
Dizin Şablonları ile Kullanım
Common/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' => 'KUT'])->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' => 'KUT']);
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('to@example.com')
->from('from@example.com')
->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('from@example.com')
->to('to@example.com')
->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('from@example.com')
->to('to@example.com')
->send('this is Subject', 'this is message.');
output(Email::error());
# LF KUT 1.0’da desteklenir
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('to@example.com')
->send('this is Subject', 'this is message.');
# CR KUT 1.0’da desteklenir
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('to@example.com')
->send('this is Subject', 'this is message.');