通过身份验证在php.ini上设置smtp

问题描述 投票:1回答:2

我正在使用IISphp Web服务器上设置smtp

php.ini文件的smtp部分中,如下所示:

[mail function]
SMTP = outbound.mailhop.org
smtp_port = 25

auth_username = my_dyndns_username
auth_password = pwd

sendmail_from = [email protected]

问题是,当我尝试调用mail()函数时,smtp服务器说:

SMTP server response: 550 You must authenticate to use Dyn Standard SMTP

我可以在哪里告诉IIS(或php)用户名和密码,以便在dyndns服务器上进行身份验证?

Dario

iis-7 smtp php dyndns
2个回答
1
投票

我发现swift mailer是解决我的问题的方法。

使用这个简单的脚本,我可以完成所有工作

$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);

here是有关如何使用其他函数/参数的书


0
投票

要在PHP中使用SMTP身份验证,您将需要使用Mail PEAR扩展名...这里是nice post告诉您如何使用它。

[基本上,您需要安装extensionwindows instructions),然后配置一些类似这样的代码(来自上面的文章):

<?php
 require_once "Mail.php";

 $from = "Sandra Sender <[email protected]>";
 $to = "Ramona Recipient <[email protected]>";
 $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>");
  }
 ?>
© www.soinside.com 2019 - 2024. All rights reserved.