Не могу отправлять письма через PHP, даже если я установил записи MX

Я использую функцию PHP mail(), но не могу отправлять письма на большинство серверов. Он отправляет письма на GMAIL без проблем... Вероятно, остальные серверы просто отказывают в моих письмах... Я установил MX-записи почтовых серверов, которые мне нужны... И я изменил свою PTR-запись на mail.example.com ...... однако по-прежнему не могу отправлять письма .. Как я могу решить эту проблему?

Кроме того, отправитель сообщений отображается как «www-data@localhost».

(Я использую Digital Ocean, Ubuntu 12.04)

Ошибки, которые я получаю в файле журнала:

Мое неполное имя хоста (localhost) неизвестно; ожидание повторной попытки localhost sendmail[11620]: невозможно определить мое собственное доменное имя (localhost) -- используя короткое имя (ошибки, которые я получаю в mail.err); и в файле журнала он показывает некоторые ошибки, связанные с проверкой, мне нужно установить smt относительно STARTTLS=client


person Zamin    schedule 12.03.2014    source источник
comment
php mail() хорош для быстрых/грязных/простых электронных писем. но они имеют ВЫСОКУЮ вероятность попасть в корзину как спам. не используйте его. используйте подходящую почтовую библиотеку, например PHPMailer или Swiftmailer.   -  person Marc B    schedule 12.03.2014
comment
Попробуйте использовать от адреса.   -  person عثمان غني    schedule 12.03.2014
comment
Проверьте, правильно ли вы настроили свой почтовый сервер. Использование постфикса? И @MarcB прав. Лучше использовать почтовые библиотеки. Я советую свифтмейлер.   -  person Teffi    schedule 12.03.2014
comment
Извините за откровенность, но, исходя из вашего вопроса, вам не следует пытаться настроить почтовый сервер. Наймите консультанта или воспользуйтесь коммерческой службой электронной почты.   -  person tripleee    schedule 12.03.2014


Ответы (2)


при использовании функции mail() необходимо установить ОТПРАВИТЕЛЯ, а также отправителя/получателя и т. д.

i.e.

mail($to, $subject, $body, $headers, "-f ".$webmaster);

Важно то, что "-f ".$webmaster позволяет вам переопределить значение по умолчанию «www-data@localhost» в качестве адреса BOUNCE (отправителя конверта) для неудачной почты.

Большинство почтовых программ отклонят электронную почту с недействительным адресом возврата.

Многие размещенные серверы не позволят вам установить значение -f, хотя... оно устанавливает «настоящего отправителя» и, конечно же, это классический способ рассылки спама.

Попробуйте с -f, и если это не поможет, смените хостинговую компанию. Или заведите себе виртуальный частный сервер.

person Leo smith    schedule 12.03.2014

У меня была та же проблема, и вы можете сделать одну вещь: открыть тикет с поддержкой цифрового океана. По умолчанию новые учетные записи имеют блокировку для отправки электронных писем (во избежание спамеров). Они быстро разрешились и значительно улучшились.

Другое дело: проверьте свою репутацию почты. Вы можете найти некоторые веб-сайты, которые могут помочь в этом, например, mail-tester.com — этот сайт предоставляет отчет с потенциальными проблемами для устранения проблемы.

person suuuzi    schedule 02.12.2014