Я работающий над формой, посредством чего, когда пользователь входят в их почтовый ящик и нажимают, отправляют, электронное письмо, буду отправлен в их почтовый ящик.
Мне разработали все. Просто то, что это не посылает электронную почту на мой счет. У кого-либо есть какие-либо идеи? Существует ли конфигурация, которую я не учел или что-то?
Это - образец от моего контроллера:
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');
}
Во-первых, я бы перешел на использование Zend_Mail. Во-вторых, я бы использовал реальный почтовый аккаунт на каком-нибудь smtp-сервере и отправлял бы с него. Часто есть ограничения на отправку с самого сервера, но использование реального почтового сервера обычно решает эту проблему.
На ZendCasts есть очень полезный скринкаст о Zend_Mail http://www.zendcasts.com/introduction-to-zend_mail/2010/02/
Я рекомендую вам использовать Zend_Mail
вместо mail ( )
. Он обрабатывает множество вещей автоматически и просто отлично работает.
У вас есть SMTP-сервер? Попытка отправить почту без вашего собственного SMTP-сервера может привести к тому, что почта не будет отправлена.
Это то, что я использую для отправки писем с помощью Zend_Mail
и Gmail:
В Bootstrap.php
я настраиваю почтовый транспорт по умолчанию:
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
}
}
Затем для отправки электронная почта Я использую следующий код:
//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.
}