Intereting Posts

Разделение электронной почты и Интернета на разных серверах: отправьте письмо через PHP на адрес электронной почты в этом домене

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

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

Когда я вызываю функцию mail () в PHP на веб-сайте , адресованном электронной почте в домене , электронное письмо доставляется LOCALLY на 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 для общего хоста.

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

Отбросьте функцию 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(); 

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

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