отправка почты с сервера php - PullRequest
1 голос
/ 22 марта 2011

Я пытаюсь отправить почту с моего сервера, чтобы они не попали в папку нежелательной почты при получении на другом конце.Я провел свое исследование и обнаружил, что должен попробовать PHPMailer.

Теперь я использовал целых два дня, ползая по Интернету, пытаясь найти решение этой проблемы.Я хочу отправлять электронные письма, используя бесплатный SMTP-сервис Google.Но не могу заставить это работать вообще.

Все, что я получаю, это сообщение об ошибке: Не удалось подключиться к узлу SMTP. Кроме того, требуется около 15 секунд, прежде чем я на самом деле получаю сообщение об ошибке.

в соответствии с Google это то, как я должен настроить свойнастройки:

http://mail.google.com/support/bin/answer.py?answer=13287

это мой код: (так же, как 10 других руководств / учебных пособий, которые я нашел)

header('Content-Type: text/html; charset=utf-8');

require_once('../class.phpmailer.php');
require_once('../class.smtp.php');

$mail = new PHPMailer();

$body             = file_get_contents('contents.html');
$body             = eregi_replace("[\]",'',$body);

$mail->IsSMTP();                           // telling the class to use SMTP
$mail->Host       = "smtp.gmail.com";      // SMTP server
$mail->SMTPDebug  = 2;                     // enables SMTP debug information (for testing)

$mail->SMTPSecure = 'ssl';
$mail->Port = 465;
$mail->SMTPKeepAlive = true;  
$mail->SMTPAuth   = true; // enable SMTP authentication  
$mail->CharSet = 'utf-8';  

$mail->Username   = 'myadress@gmail.com'; // SMTP account username  
$mail->Password   = 'mypw'; 

$mail->SetFrom('myadress@gmail.com', 'My name');
$mail->Subject    = "PHPMailer Test Subject via smtp, basic with authentication";
$mail->AltBody    = "To view the message, please use an HTML compatible email viewer!";

$mail->MsgHTML($body);

$mail->AddAddress("reciever@live.no", "Reciever Name");

if(!$mail->Send()) {
  echo "Mailer Error: " . $mail->ErrorInfo;
} else {
  echo "Message sent!";
}

Так что это явно не работает,Должен ли я оставить свой провайдер?Или я должен попробовать что-то еще?Мне действительно нужно иметь возможность отправлять электронные письма, не отправляя их прямо в папку нежелательной почты ...

с наилучшими пожеланиями, Александр

Ответы [ 4 ]

0 голосов
/ 22 марта 2011

Похоже, что ваша проблема не связана с обработкой спама, а скорее невозможностью подключиться к SMTP-серверу Google. Вот где я бы сосредоточился на этом. Длительные задержки в ответах обычно приводят меня к проверке возможных проблем с DNS в качестве первого шага устранения неполадок. Можете ли вы пинговать smtp.gmail.com с вашего сервера? Если имя хоста разрешается DNS и вы получаете ответ, проверьте, не заблокирован ли исходящий порт 465. Брандмауэр.

0 голосов
/ 22 марта 2011

Если вы не можете подключиться к SMTP, это может быть вообще не связано с кодом.На самом деле, судя по звукам, ваш код работает настолько, насколько пытается сделать то, что должен - просто не удается.

Может ли ваш сервер получить доступ к smtp.gmail.com через порт 465 через любой брандмауэр, который вы можетеесть на вашей машине или в сети?Разрешено ли на другом конце?(Разрешает ли Google такой доступ?)

Вы можете попробовать использовать PuTTy или аналогичный для прямого доступа к почтовому серверу и ввести некоторые команды SMTP, чтобы увидеть, какие сообщения вы получаете.

Если у вас работает локальный почтовый сервер, я бы попробовал его с этим, отправил бы себе несколько сообщений и поработал оттуда.

Как только вы действительно можете ОТПРАВИТЬ электронное письмо, как указано в других ответах - вы можете начать беспокоиться о том, что оно будет принято на серверах и не будет рассматриваться как спам!

0 голосов
/ 22 марта 2011

Я пытаюсь отправить почту с моего сервера, чтобы они не попали в папку нежелательной почты при получении на другом конце. Я провел исследование и выяснил, что мне стоит попробовать PHPMailer.

неправильно. Вы не сделали свое исследование должным образом.

Если они доходят до удаленного конца, то в вашем коде нет ничего плохого. Использование phpmailer () не поможет. Использование другой службы SMTP может помочь, но не поможет вам понять, что на самом деле здесь происходит.

Вопрос о том, как заставить удаленную систему НЕ рассматривать вашу электронную почту как спам, неоднократно задавался и отвечался здесь:

  • попробуйте прочитать несколько хороших ответов на другие посты
  • нет однозначного ответа - слишком много факторов, и даже если бы вы точно знали, что это такое, вы не могли бы объяснить их все
  • все, что вы можете сделать, это сделать ваши электронные письма выглядеть меньше как спам
  • это все о содержании электронной почты и о том, как настроен почтовый сервер / DNS
0 голосов
/ 22 марта 2011

Ваши сообщения помечаются как спам с помощью программного обеспечения, такого как "Spamassassins", есть много вещей, которые нужно знать, ваше сообщение оценено Spamassassin, согласно этому списку для последней версии: Тесты SpamAssassin

Посмотрите, и вы легко поймете, почему ваше сообщение помечено как спам.

Чем выше ваш счет, тем выше вероятность быть отмеченным как спам, попробуйте отправить его в виде простого текста.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...