Я могу настроить sendmail в php.ini на wampserver 2.1 для публикации данных формы на локальном компьютере? - PullRequest
2 голосов
/ 28 января 2012

Я создал несколько форм с помощью zendframework на моем локальном компьютере, которые отправляют содержимое формы по электронной почте.

Я хотел бы проверить функциональность локально и прочитать несколько постов, касающихся настройки файла php.ini, чтобы сделать это, но не уверен, какой метод правильный?

Может кто-нибудь помочь мне с этим, большое спасибо

1 Ответ

1 голос
/ 29 января 2012

В Windows вам нужно будет использовать SMTP для отправки сообщения. Существует фальшивый sendmail для Windows , но для него все еще требуется SMTP-сервер.

Вы можете использовать сервер sendmail вашего провайдера, если он его предлагает, или вы можете установить его на локальном компьютере. 1 , 2 , 3 , 4

Поскольку вы используете Zend Framework, вы можете альтернативно использовать Zend_Mail для отправки через SMTP-сервер (Zend_Mail также может использовать sendmail, но, поскольку он не настроен, вы не можете использовать этот транспорт) , В этом случае см. Отправка по SMTP , SMTP-аутентификация и Защита транспорта SMTP .

Вот пример кода для отправки SMTP-сообщения с защитой AUTH и TLS.

<?php

require_once 'Zend/Mail.php';
require_once 'Zend/Mail/Transport/Smtp.php';

$config    = array('ssl' => 'tls',
                   'port' => '465', // 25 if no ssl
                   'auth' => 'login',
                   'username' => 'user',
                   'password' => 'password');

$transport = new Zend_Mail_Transport_Smtp('smtp.example.com', $config);

$mail = new Zend_Mail();
$mail->addTo('user@domain')
     ->setSubject('Mail Test')
     ->setBodyText("Hello,\nThis is a Zend Mail message...\n")
     ->setFrom('sender@domain');

try {
    $mail->send($transport);
    echo "Message sent!<br />\n";
} catch (Exception $ex) {
    echo "Failed to send mail! " . $ex->getMessage() . "<br />\n";
}

Также обратите внимание, что ваш ISP может вообще не требовать от вас авторизации, если вы отправляете с одного из их IP-адресов, но вам, вероятно, придется проходить аутентификацию с вашим именем пользователя и паролем, в этом случае вы захочет использовать TLS.

...