Настройка smtp на php.ini с аутентификацией
Я настраиваю smtp на IIS
веб-сервер, использующий php
в php.ini
подайте раздел smtp следующим образом:
[mail function]
SMTP = outbound.mailhop.org
smtp_port = 25
auth_username = my_dyndns_username
auth_password = pwd
sendmail_from = no-reply@website.com
Проблема в том, что когда я пытаюсь вызвать функцию mail(), сервер smtp говорит
SMTP server response: 550 You must authenticate to use Dyn Standard SMTP
где я могу сообщить IIS (или php) имя пользователя и пароль для аутентификации на сервере dyndns?
Dario
2 ответа
Я нашел быструю рассылку, чтобы решить мою проблему.
с этим простым скриптом у меня все работает
$transport = Swift_SmtpTransport::newInstance('outbound.mailhop.org', 25)
->setUsername('user')
->setPassword('pwd');
$mailer = Swift_Mailer::newInstance($transport);
$message = Swift_Message::newInstance()
->setSubject($sbj)
->setFrom($from)
->setReplyTo($replyTo)
->setTo($to)
->setBody($msg);
$result = $mailer->send($message);
вот книга о том, как делать с другими функциями / параметрами
Использовать SMTP
Аутентификация с PHP, вы хотите использовать почту PEAR
расширение... вот хороший пост, рассказывающий, как его использовать.
По сути, вам нужно установить расширение ( инструкции для Windows), а затем настроить немного кода примерно так (из поста выше):
<?php
require_once "Mail.php";
$from = "Sandra Sender <sender@example.com>";
$to = "Ramona Recipient <recipient@example.com>";
$subject = "Hi!";
$body = "Hi,\n\nHow are you?";
$host = "mail.example.com";
$username = "smtp_username";
$password = "smtp_password";
$headers = array ('From' => $from,
'To' => $to,
'Subject' => $subject);
$smtp = Mail::factory('smtp',
array ('host' => $host,
'auth' => true,
'username' => $username,
'password' => $password));
$mail = $smtp->send($to, $headers, $body);
if (PEAR::isError($mail)) {
echo("<p>" . $mail->getMessage() . "</p>");
} else {
echo("<p>Message successfully sent!</p>");
}
?>