MAMP php mail

5 Cevap php

PHP'nin mail kullanarak bazı komut test etmek gerekir. Sonunda yerel olarak bu çalışma elde edebilmek istiyorum. Ben mAmp kullanıyorum. Herhangi bir üçüncü parti yazılım yüklemeden bunu yapmanın bir yolu var mı?

Bu konuda bazı arama yaptık ama çekici bir şey bulamadı.

Teşekkürler

5 Cevap

Eğer özel posta gönderme veya kodun geri kalanını test test etmek için çalışıyorlar?

Eski bir durumda, yapılandırmanız gerekir:

 SMTP = smtp.example.com
 smtp_port = 25
 sendmail_from = me@example.com

uygun değerleri yerine, php.ini dosyasındaki (bu phpinfo () ile olduğu kontrol edin).

Posta gönderme işlemi dışında kodunu test etmek için, o zaman ben 2 dosyalarını içerir oluşturma tavsiye ederim:

<?php
// for live usage/mail send testing
function ori_mail()
{
   return call_user_func_array('mail',func_get_args());
}

and for testing other code

function ori_mail()
{
   file_put_contents('debug_mail_scripts.txt'
       ,date('r') . ':' . var_export(func_get_args(), true)
       , FILE_APPEND);
}

Ve test için ilgili birini içerir.

SMTP sunucusu ile bu test entegrasyon unutmayın, ve kod test deliverbility oldukça karmaşık ama bağımsız PHP test yapılmalıdır.

C.

Sen Swift Mailer kütüphane düşünebilirsiniz

http://swiftmailer.org/

Bu çok daha güvenilir bir PHP kodu e-posta yapıyor yapar. Hatta gerçek bir SMTP hizmeti için mailler komut işaret olabilir. Bu üretim ortamlarında yerel taşırken içine aday olacağını konuların aa çok ortadan kaldırabilir.

Swift mailler kullanarak bir single kullanmak kadar basittir PHP script üstünde ve basit bir mesaj göndermek için bir kod bloğu yazma içerir. Ve tamamen nesne yönelimli olduğunu.

Birkaç ay önce benim yerel makinede e-posta bildirimleri otomatik gönderme ilgili bir uygulamayı geliştirmek iken benzer bir sorun vardı. Ben OSX Sendmail'i yükleme oldukça zaman kaybetti ve sonunda doğru çalışma alamadım ..

Benim yaklaşım PHP'nin posta işlevinin yerine geçici olarak PEAR Mail kullanmak olmuştur. Bir sunucu üzerinde uygulama dağıtmak kez Temelde, send-mail (bkz. aşağıdaki kodu) adında bir fonksiyon tanımlayabilir ve, muhtemelen) (posta çağrıları ile bu işlevi çağrıları değiştirebilirsiniz.

     <?php
     require_once 'Mail.php';
     function send_mail($recipient,$subject,$body){

            $host = "yourmailserver.net"; 
            $username = "you@yourmailserver.net";
            $password = "password";
            $port = 25; 

            $headers = array ('From' => "Your agent <noreply@yoursite.net>",
              'To' => $recipient,
              'Subject' => $subject
            );  

            $smtp = Mail::factory(
             'smtp',
              array ('host' => $host,
                'auth' => true,
                'port' => $port,
                'username' => $username,
                'password' => $password)
            );  
            $smtp->send($recipient, $headers, $body);
       }
    ?>

ve ben bir hesabı var olan gerçek bir SMTP sunucusu belirtin: ne yapmam i phpmailer class (! korkunç et uyarısı) kullanmaktır. Yani ben posta kullanmak () ancak SMTP kullanmayın. Bu şekilde, o benim yerel sunucuda veya gerçek sunucuda olduğumu fark etmez. Ama o smtp posta sunucusuna bir çalışma SMTP erişimi gerekiyor. Best aslında üretim posta sunucusu (canlı gittiğinde uygulamanız tarafından kullanılacak bir) kullanmak olacaktır. Eğer postasunucusu cevap-alanını ve bunun gibi küçük şeyleri haberci olduğunu keşfettikleri zaman bu şekilde, son dakika sürprizi olmaz.

Gmail hesabınızı kullanmak ve Gmail'in SMTP sunucusu üzerinden test e-postalar göndermek olabilir.

Bunu yapmak için phpmailer sınıf (http://phpmailer.worxware.com/) kullanabilirsiniz. Bu sınıf indirdiğinizde temel gmail örnek örnekler / klasöründe bulunmaktadır.