Domain-Name-System

使用 1and1.com 伺服器,SMTP 郵件受限 - 本地 XAMPP 伺服器按預期工作

  • November 5, 2013

我開始不太喜歡 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. 我開始感到困惑並來這裡尋求幫助

這是通過調整伺服器上 PEAR 的路徑來解決的。我實際上將它安裝在另一個目錄中並將我的功能指向那裡。

引用自:https://serverfault.com/questions/423080