1

我想使用 pear 邮件扩展来发送经过 SMTP 身份验证的电子邮件。网上有很多例子......这是我的代码:

<?php
require_once "Mail.php";

$body = "Testtext";
$subject = "SMTP Testmail";
$mail_to = "valid.adress@test.com";
$mail_from = "valid.sender.adress@othertest.com";

//SMTP Verbindungsdaten
$host = "valid.smtp.com";
$username = "invalidusername@othertest.com";
$password = "validpasswordforotheruser";

$smtp = Mail::factory('smtp',
 array (
 'host' => $host,
 //'auth' => true,
 'auth' => true,
 'username' => $username,
 'password' => $password
));

$headers = array (
 'From' => $mail_from,
 'To' => $mail_to,
 'Subject' => $subject
);
$mail = $smtp->send($mail_to, $headers, $body);

if (PEAR::isError($mail)) {
 echo "Error during sending E-Mail : ". $mail->getMessage();
}
?>

该脚本运行良好,因此我想测试此示例的错误情况并将 smtp 用户更改为无效的内容,并且它仍然有效......我收到了我的邮件。

怎么会这样?

问候

编辑:我现在进行了另一项测试,并将 smtp 服务器更改为无效...文档说必须存在“PEAR_MAIL_SMTP_ERROR_CONNECT”错误...我得到以下输出:“fsockopen() [function. fsockopen]:无法连接到第 108 行 /usr/local/lib/php/Net/Socket.php 中的xx.xx.xx.xxx:25(连接被拒绝)"

“可捕获的致命错误:PEAR_Error 类的对象无法在第 222 行的 /usr/local/lib/php/Net/SMTP.php 中转换为字符串”

当 smtp 名称无效时,这个 IP 来自哪里???可以是服务器被任何配置否决吗?

4

1 回答 1

2

这意味着 SMTP 服务器不会验证登录数据。它可能根本不需要身份验证或支持 SMPT-after-POP(顺便说一句,这是一个非常过时的东西),即如果您的 IP 最近在相应的 POP3 服务器上进行了身份验证,则 SMTP 服务器将不需要您进行身份验证。

尝试将服务器更改为可能一直需要身份验证的服务器,例如 gmail SMTP。

于 2012-06-18T09:45:41.630 回答