2010-02-17 19 views
6

Kullanıcının e-posta hesabına girdiği ve gönderdiği zaman, e-posta hesabına bir e-posta gönderileceği bir form üzerinde çalışıyorum.Zend Framework ve PHP kullanarak e-posta gönderme

Her şey yolunda gitti. Sadece e-posta hesabıma gönderilmez. Herhangi bir fikri olan var mı? Dışarıda bıraktığım bir şey var mı? i Zend_Mail kullanmaya geçiş olacağını tüm

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'); 
} 
+1

Kodunuzu localhost üzerinde test ediyorsanız, özel yapılandırmaların yapılması gerekir. –

+0

Özel yapılandırmalar nedir? bir örnek mi var? – Ryan

cevap

1

İlk:

Bu

benim denetleyicisinden örneğidir. İkinci olarak, bir yerdeki bir smtp sunucusunda gerçek bir posta hesabı kullanıp bundan gönderiyorum. Çoğu zaman, sunucunun gönderilmesinde kısıtlamalar vardır, ancak gerçek bir posta sunucusu kullanmak genellikle bunu düzeltir.

26

geçerli Zend_Mail kapsayan çok yararlı bir screencast var. Otomatik olarak bir çok şeyi işler ve sadece harika çalışır.

SMTP sunucunuz var mı? Kendi SMTP sunucunuz olmadan posta göndermeye çalışmak postaların gönderilmemesine neden olabilir.

protected function _initMail() 
{ 
    try { 
     $config = array(
      'auth' => 'login', 
      'username' => '[email protected]', 
      '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 posta göndermek için: Bootstrap.php içinde, bir varsayılan posta taşıma yapılandırmak

:

Bu

Ben gönderme Zend_Mail kullanarak postalar ve Gmail için kullanmak budur

hattı $mail->setBody($message); yılında
//Prepare email 
$mail = new Zend_Mail(); 
$mail->addTo($email); 
$mail->setSubject($subject); 
$mail->setBody($message); 
$mail->setFrom('[email protected]', '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. 
} 
1

, $mail->setBodyText($message);

olarak değiştirin