Zend Framework ve PHP kullanarak e-posta gönderme

2 Cevap php

Ben kullanıcı e-posta hesabınıza girmeniz ve send üzerine tıkladığınızda, bir e-posta e-posta hesabına gönderilecektir sayede bir form üzerinde çalışıyor.

Ben her şey amele dışarı var. Hesabıma e-posta göndermek değil sadece. Herkes herhangi bir fikir var mı? Bir ben dışarı sol yapılandırma falan var mı?

Bu benim denetleyicisi örnek:

public function retrieveemailAction(){

    $users = new Users();
    $email = $_POST['email'];               
    $view = Zend_Registry::get('view'); 

        if($users->checkEmail($_POST['email'])){

        // The Subject
        $subject = "Email Test";

        // The message
        $message = "this is a test";            

        // Send email
        // Returns TRUE if the mail was successfully accepted for delivery, FALSE otherwise.
        // Use if command to display email message status
            if(mail($email, $subject, $message, $headers))
            {
                    $view->operation = 'true';
            }           
        }
        else
        {
            $view->operation = 'false';
        }

    $view->render('retrieve.tpl');

}

2 Cevap

Ben yerine posta Zend_Mail kullanın () öneririz. Bu otomatik bir sürü kolları ve sadece harika çalışıyor.

Eğer bir SMTP sunucusu var mı? Kendi SMTP sunucusu olmadan posta göndermeye çalışıyor posta gönderilmez neden olabilir.

Bu benim Zend_Mail ve Gmail'i kullanarak mail göndermek için ne kullanın:

Bootstrap.php Ben bir varsayılan posta taşıma yapılandırın:

protected function _initMail()
{
    try {
        $config = array(
            'auth' => 'login',
            'username' => 'username@gmail.com',
            'password' => 'password',
            'ssl' => 'tls',
            'port' => 587
        );

        $mailTransport = new Zend_Mail_Transport_Smtp('smtp.gmail.com', $config);
        Zend_Mail::setDefaultTransport($mailTransport);
    } catch (Zend_Exception $e){
        //Do something with exception
    }
}

Sonra aşağıdaki kodu kullanabilirsiniz bir e-posta göndermek için:

//Prepare email
$mail = new Zend_Mail();
$mail->addTo($email);
$mail->setSubject($subject);
$mail->setBody($message);
$mail->setFrom('username@gmail.com', 'User Name');

//Send it!
$sent = true;
try {
    $mail->send();
} catch (Exception $e){
    $sent = false;
}

//Do stuff (display error message, log it, redirect user, etc)
if($sent){
    //Mail was sent successfully.
} else {
    //Mail failed to send.
}

Her şeyden önce ben Zend_Mail kullanarak geçmek istiyorsunuz. İkincisi ben bir yerde bir SMTP sunucusu üzerinde gerçek bir posta hesabı kullanmak ve bundan göndermek istiyorsunuz. Sunucudan kendisini gönderiyor, fakat gerçek bir posta sunucusunu kullanarak kısıtlamalar vardır Bir çok kez genellikle bu giderir.