PHP web programlama dilinin kendi mail() fonksiyonu olmasına rağmen bu fonksiyonunun smtp, sendmail gibi protokollerle çalışmıyor olması ve sunucuların açık oluşturmasından dolayı mail() fonksiyonunu devre dışı bırakması nedeniyle de 3. parti bir çözüme ihtiyaç olabilir. Kendi ihtiyacım olduğunda karşıma çıkan ve sorunsuz çalışan iki kütüphaneyi paylaşmak istiyorum.
İlki PHPMailer, ikincisi Swiftmailer kütüphanesi. İkisi de Composer aracılığıyla yüklenebiliyor. Composer ile yüklemelerde kütüphane haricinde bir kaç dosya ilavesiyle kullanamazsanız bu yazıyla yardımcı olmaya çalışacağım.
Swiftmailer
Swiftmailer projenize entegre etmek için aşağıdaki kodları çalıştırmanız gerek. Aşağıdaki kodların çalışması için ise Composer yüklü olmalı.
$ composer require “swiftmailer/swiftmailer:^6.0”
Yukarıdak kodlar vasıtasıyla yüklemeyi tamamladığınızda Swiftmailer’in çalışmak için PHP 7.0 ve yüksek sürüm istediğini ve mbstring aşırı yüklemesiyle mbstring.func_overload değeri 2 olduğunda çalışmayacağını unutmayalım.
Yükleme sonrasında oluşturulan dizin içinde “Vendor” adlı dizini projenizin içine kopyalayın.
Bundan sonra “autoload.php” dosyasını PHP dosyanıza ithal ederek kullanabilirsiniz. Aşağıdaki kodları projenize ister fonksiyon olarak ister prosedürel olarak yazabilirsiniz;
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
<span class="k">require_once</span> <span class="s1">'/path/to/vendor/autoload.php'</span><span class="p">;</span> <span class="c1">// Transport nesnesini oluşturuyoruz</span> <span class="nv">$transport</span> <span class="o">=</span> <span class="p">(</span><span class="k">new</span> <span class="nx">Swift_SmtpTransport</span><span class="p">(</span><span class="s1">'smtp.fatihanil.net.tr'</span><span class="p">,</span> <span class="mi">25</span><span class="p">))</span> <span class="o">-></span><span class="na">setUsername</span><span class="p">(</span><span class="s1">'eposta adresi'</span><span class="p">)</span> <span class="o">-></span><span class="na">setPassword</span><span class="p">(</span><span class="s1">'eposta şifresi'</span><span class="p">)</span> <span class="p">;</span> <span class="c1">// Transport nesnesi parametresiyle mailer nesnesi oluşturuyoruz</span> <span class="nv">$mailer</span> <span class="o">=</span> <span class="k">new</span> <span class="nx">Swift_Mailer</span><span class="p">(</span><span class="nv">$transport</span><span class="p">);</span> <span class="c1">// İletiyi oluşturuyoruz</span> <span class="nv">$message</span> <span class="o">=</span> <span class="p">(</span><span class="k">new</span> <span class="nx">Swift_Message</span><span class="p">(</span><span class="s1">'İleti Başlığı'</span><span class="p">))</span> <span class="o">-></span><span class="na">setFrom</span><span class="p">([</span><span class="s1">'gonderen@domain.com'</span> <span class="o">=></span> <span class="s1">'John Doe'</span><span class="p">])</span> <span class="o">-></span><span class="na">setTo</span><span class="p">([</span><span class="s1">'alıcı@domain.org'</span><span class="p">,</span> <span class="s1">'2.alıcı@domain.org'</span> <span class="o">=></span> <span class="s1">'A name'</span><span class="p">])</span> <span class="o">-></span><span class="na">setBody</span><span class="p">(</span><span class="s1">'İletinin mesaj kısmı...'</span><span class="p">)</span> <span class="p">;</span> <span class="c1">// İleti gönderiliyor</span> <span class="nv">$result</span> <span class="o">=</span> <span class="nv">$mailer</span><span class="o">-></span><span class="na">send</span><span class="p">(</span><span class="nv">$message</span><span class="p">);</span> |
Daha detaylı bilgiye Swiftmail.symfony.com sayfasından ulaşabilirsiniz.
PHPMailer
0 Comments