Разделение электронной почты и Интернета на разных серверах: отправка электронной почты через PHP на электронную почту в этом домене - PullRequest
1 голос
/ 03 ноября 2011

1 Домен с портом 80 и MX на DNS:

  • Сайт размещен на VPS.
  • Электронная почта размещена на общем хосте.

Когда я вызываю функцию mail () в PHP на веб-сайте , которая адресована электронной почте в домене , сообщение доставляется ЛОКАЛЬНО на VPS, а не на общий сервер.

В PHP работает на веб-хосте VPS с использованием домена MyDomain.com:

$headers = "From: MyName <name1@MyDomain.com>\r\n";
$headers .="Return-Path:<name1@MyDomain.com>\r\n";
mail( "name2@MyDomain.com", "Header", "Content", $headers);

Как заставить mail () выполнить поиск MX для домена? Как мне доставить почту на общий хост, а не на VPS?

Я пытался сделать это, но это не сработало:

ini_set("SMTP","123.456.789.012");

Где 123.456.789.012 - это IP-адрес общего хоста.

Общий хост - хостмонстер. Есть ли способ указать почтовый ящик, используя ip и имя пользователя? name2~username@123.456.789.012

Ответы [ 2 ]

1 голос
/ 03 ноября 2011

Отбросьте функцию mail () в пользу PHPMailer .Он более гибкий, объектно-ориентированный, намного проще в настройке с SMTP и имеет гораздо лучшую поддержку вложений (если вам это нужно).

Чтобы отправить письмо в phpmailer, вам просто нужноустановите свой SMTP:

$mailer = new PHPMailer();
$mailer->Mailer = 'smtp';
$mailer->Host = '123.456.789.012';
$mailer->From = 'me@myself.com';
$mailer->FromName = 'Me Myself';
$mailer->AddAddress = 'someRecipient@whatever.com';
$mailer->Subject = 'My subject line';
$mailer->Body = 'Your Body text here, in HTML if you set $mailer->IsHtml(true)';
$mailer->Send();
1 голос
/ 03 ноября 2011

Проблема в том, что ваш VPS-сервер настроен на обработку почты для вашего домена. Настройте свою почтовую конфигурацию соответственно. Кроме того, Linux игнорирует настройку SMTP. Только Windows использует это.

В качестве альтернативы вы можете использовать такой класс, как PHPMailer, который может напрямую подключаться к удаленному SMTP-серверу.

...