отправка писем с помощью PEAR Mail в PHP работает нормально на Windows Dev System, но не на Linux Server? - PullRequest
2 голосов
/ 21 февраля 2011

Я использую следующий код для отправки электронной почты с помощью mail.google

<?php
    require_once "Mail.php";

    $from = "someone@somedomain.com";
    $to = "otherone@somedomain.com";
    $subject = "Hi!";
    $body = "Hi,\n\nHow are you?";

    $host = "ssl://smtp.gmail.com";
    $port = "465";
    $username = "mygmailaccount@gmail.com";
    $password = "mygmailpassword";

    $headers = array ('From' => $from,
      'To' => $to,
      'Subject' => $subject);
    $smtp = Mail::factory('smtp',
      array ('host' => $host,
        'port' => $port,
        'auth' => true,
        'username' => $username,
        'password' => $password));

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

    if (PEAR::isError($mail)) {
      echo("<p>" . $mail->getMessage() . "</p>");
     } else {
      echo("<p>Message successfully sent!</p>");
    }

?>

Этот код отлично работает на Windows Development Machine, но не на моем Amazon Linux Server?

Скажите, пожалуйста, требуется ли дополнительная конфигурация?

1 Ответ

3 голосов
/ 21 февраля 2011

Mail.php - не единственный файл, необходимый для отправки почты по SMTP.Вам нужны следующие файлы:

Mail.php
PEAR.php
PEAR5.php
Mail/smtp.php
Net/SMTP.php
Net/Socket.php
Mail/RFC822.php

По крайней мере, эти файлы были нужны, когда я опробовал ваш пример на моем собственном Linux-сервере.

Я не знаю, как этот веб-сервис Amazonработает, но вам, вероятно, нужно посмотреть какой-нибудь лог-файл или как-то включить сообщения об ошибках в выводе HTML, или увеличить уровень предупреждения, чтобы узнать, что действительно не так.

Если вы хотите установить файлы вручную, вы можете скачатьих отсюда:

...