使用 1and1.com 服务器时,SMTP 邮件受到限制 - 本地 XAMPP 服务器按预期运行

使用 1and1.com 服务器时,SMTP 邮件受到限制 - 本地 XAMPP 服务器按预期运行

我开始不那么喜欢 1and1.com 了。我用了好几年,但主要是用于不需要太多配置的简单网站。我知道有更好的托管公司,我可能会去寻找它们。

这里的问题是,在我的本地 XAMPP 服务器(位于 Comcast ISP 网络上)上,我有一个 PHP 脚本,该脚本使用 PEAR::Mail 通过 MIME 发送邮件。该脚本使用smtp.1and1.com相应的凭据和smtp.gmail.com相应的凭据,使用适当的端口等在本地工作。

1and1 告诉我,为了使此脚本正常工作,我必须更改运行该脚本的域上的 MX 记录。这对我来说毫无意义。

版本:

PEAR Version: 1.5.0
PHP Version: 4.4.9
Zend Engine Version: 1.3.0

我知道系统(服务器)有很大不同(感谢 nojak 提出这个问题;我最初的问题很模糊)。操作系统、PHP 版本以及可能许多其他配置都大不相同。我的主要问题是,如果 PEAR 和 PHP 在两种情况下都具有电子邮件功能,并且我的脚本在本地设置上运行,那么什么样的事情会导致 1and1 服务器无法工作?我正在寻找其他故障排除方法。

我为我的无知提前道歉。提前感谢您的帮助。

编辑

这是我的功能:

require_once('Mail.php');
require('Mail/mime.php');

function send_form_mail($body) {

    $from = "<***>";
    $to = "<***>";
    $subject = $body[0];
    $host = "smtp.1and1.com";
    $port = "587";
    $username = "***";
    $password = "***";

    $headers = array(
        'From' => $from,
        'To' => $to,
        'Subject' => $subject
    );

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

    $text_field_array = array(
        '',
        ''
    );

    for ($i = 1, $size = sizeof($body) + 1; $i < $size; $i++) {      
        $text_body .= $text_field_array[$i] . $body[$i] . '\n';
    }

    $html_field_array = array(
        '',
        ''
    );

    for ($i = 1, $size = sizeof($body) + 1; $i < $size; $i++) {          
        $html_body .= $html_field_array[$i] . $body[$i] . '<br />';
    }

    $mime = new Mail_mime();
    $mime -> setTXTBody($text_body);
    $mime -> setHTMLBody($html_body);

    $email_body = $mime -> get(); 
    $headers = $mime -> headers($headers);

    $mail = $smtp -> send($to, $headers, $email_body);

    if (PEAR::isError($mail)) {
        echo("<p>We've encountered and an error: " . $mail -> getMessage() . "</p>");
    }
}

请注意,我在上面的功能中用星号标出了敏感字符。

以下是1and1 与我分享的要点:

  1. 告诉我 PEAR Mail 无法使用
  2. 我测试了一下,确实如此,所以第一个技术是错误的
  3. 通过电子邮件,从他们那里获得使用 PEAR 的测试脚本
  4. 测试过了,没问题,但是没有 SMTP
  5. 然后,他们给了我其他 SMTP 服务器
  6. 测试了这些,它们也能正常工作,但仍然没有 SMTP
  7. 我问为什么我不能使用其他电子邮件服务器,比如 smtp.gmail.com
  8. 然后他们告诉我必须更改我的 MX 记录
  9. 然后我问为什么,因为我还不想这样做,我只想使用另一个 SMTP 服务器
  10. 他们告诉我这是不可能的
  11. 我开始感到困惑并来这里寻求帮助

答案1

通过调整服务器上 PEAR 的路径解决了这个问题。我实际上将它安装在了另一个目录中,并将我的函数指向那里。

相关内容