Отправка электронной почты с помощью PHP, если домен размещен на Media Temple, а электронная почта размещена на domains.live.com

Я настроил простую форму на своем веб-сайте, чтобы проверить отправку электронной почты с помощью PHP.

Форма отправляет ввод трех текстовых полей в email-form-process.php, который выглядит следующим образом:

<?php

    $email = $_POST['email'];

    $subject = "Test Email Worked";

    $msg = $_POST['comment'];

    mail ('$email','$subject','$msg');

    header('Location: email-form-confirm.php');
    exit();

?>

Я повторил три ввода в тесте, чтобы убедиться, что email-form-process.php получает их из формы, которой она является.

Проблема, с которой я сталкиваюсь, заключается в том, что электронная почта не получена ни на одном из моих электронных писем. Я протестировал его на адрес электронной почты @live.com и на два пользовательских домена, размещенных на доменах domains.live.com.

Я использую domains.live.com для размещения всей электронной почты для своих веб-сайтов. У меня настроены записи DNS через мой хост MediaTemple для domains.live.com для обработки моей электронной почты. Это отлично работает для обычной электронной почты, но я не уверен, что лучше всего отправлять электронную почту в PHP, используя электронную почту моего личного домена, размещенную на domains.live.com.

Как отправить электронную почту с адреса [email protected] через PHP, если мой домен размещен на MediaTemple, а моя электронная почта размещена на domains.live.com?

Я еще не пробовал использовать метод SMTP. Будет ли решение, найденное по следующей ссылке, хорошим направлением для меня? http://www.9lessons.info/2009/10/send-mail-using-smtp-and-php.html

Заранее благодарим вас за любую помощь, которую вы можете предложить!

-Отметка


person Mark Rummel    schedule 11.10.2011    source источник
comment
Вы спрашивали у службы поддержки MT, есть ли у них настройка и конфигурация sendmail? Если это так, вы сможете отправлять почту с любого почтового домена. На самом деле, phpinfo() должен быть в состоянии сказать вам, доступен ли он.   -  person Jared Farrish    schedule 11.10.2011
comment
Кроме того, если эта PHP-страница не защищена каким-либо образом (пользователи должны войти в систему), у вас может быть спам-скрипт, ожидающий своего появления.   -  person Jared Farrish    schedule 11.10.2011
comment
Спасибо, Джаред. Я проверил phpinfo(), и sendmail_form не имеет значения, а sendmail_path имеет путь. SMTP также установлен на «localhost». Что я должен искать? Когда я связываюсь с MediaTemple, что я должен у них спросить? Еще раз спасибо!   -  person Mark Rummel    schedule 11.10.2011
comment
Я не уверен насчет sendmail_form (у моего Dreamhost там тоже ничего нет), но у него есть путь. Я не могу проверить его в данный момент, чтобы увидеть, отправляет ли он, но я мог, когда у меня было несколько сайтов, размещенных на MT, и у нас не было ничего особенного. Свяжитесь с их службой поддержки и просто скажите им, что происходит; спросите о любых журналах, которые вы можете проверить, и о том, есть ли у них тестовый сценарий, который может проверить, работает он или нет. Обычно они очень полезны (хотя временами медленны).   -  person Jared Farrish    schedule 11.10.2011


Ответы (3)


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

http://kb.mediatemple.net/questions/519/Как+включить+или+отключить+локальную+почту+для+вашего+сервера%3F

person mt_Sara    schedule 24.10.2011

Поскольку Live размещает вашу электронную почту, она может блокировать/отправлять входящие электронные письма немедленно в папку со спамом. Ваш веб-сервер имеет другой IP-адрес, чем почтовый сервер live, поэтому он может подумать, что отправляет поддельные электронные письма.

Вы также можете заглянуть в sendgrid; они помещают IP-адрес вашего сервера в белый список, и ваши электронные письма ОБЯЗАТЕЛЬНО дойдут.

Надеюсь это поможет!

person Eric Simons    schedule 11.10.2011
comment
Спасибо, Эрик. Я буду помнить о sendgrid, когда буду искать хорошее общее решение. - person Mark Rummel; 11.10.2011

Вы можете использовать что-то вроде PHPMailer, что НАМНОГО упростит использование почты SMTP. В любом случае это определенно лучшее решение, чем использование встроенной почтовой команды в PHP, поскольку PHPMailer обеспечивает гораздо лучшую обработку вложений, обработку получателей и т. д. без необходимости писать собственные заголовки для отправки через почтовую функцию.

Вы также можете отправить с сервера MediaTemple и просто установить имя хоста в качестве своего домена. Он не обязательно должен совпадать с записью MX, хотя спам-фильтры это замечают, поэтому вам необходимо настроить свой домен как минимум для SenderID и SPF, чтобы хост MediaTemple воспринимался как действительный отправитель электронной почты для вашего домена.

person davidethell    schedule 11.10.2011