При использовании серверов 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

Я понимаю, что системы (серверы) сильно различаются (спасибо Нояку за то, что поднял этот вопрос; мой первоначальный вопрос был расплывчатым). Операционные системы, версии 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. Сказал мне груша почта не будет работать
  2. Я проверил это, и это было сделано, поэтому первая технология была неправильной
  3. По электронной почте получил тестовый скрипт от них, используя PEAR
  4. Протестировал и все заработало, но нет SMTP
  5. Затем они дали мне другие SMTP-серверы
  6. Протестировал их, и они работали так же, но все еще без SMTP
  7. Я спросил, почему я не могу просто использовать другие почтовые серверы, такие как smtp.gmail.com
  8. Затем они сказали мне, что я должен изменить свою запись MX
  9. Затем я спросил, почему, так как я еще не хотел этого делать, и что я хотел просто использовать другой SMTP-сервер
  10. Мне сказали, что это невозможно
  11. Я запутался и пришел сюда за помощью

1 ответ

Решение

Это было решено путем настройки путей PEAR на сервере. Я фактически установил его в другой каталог и указал свои функции там.

Другие вопросы по тегам