Pear Mails也使用无效的smtp用户发送邮件

时间:2012-06-18 09:42:51

标签: php pear

我想使用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]:无法连接到/usr/local/lib/php/Net/Socket.php中的 xx.xx.xx.xxx:25 (拒绝连接)第108行“

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

当smtp名称无效时,此IP来自何处? 可以通过任何配置来取消服务器吗?

1 个答案:

答案 0 :(得分:2)

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

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