Подтвердить что ты не робот

Не может отправлять электронную почту по адресам в моем собственном домене

У меня есть простой php script в моем домене, который отправляет мне электронное письмо:

...
$toMail = "[email protected]"; //this works - I get the email at my gmail
$toMail = "[email protected]"; //this doesn't - I get nothing

mail($toMail, $subject, $message, $header); 

Какую настройку я могу изменить, чтобы исправить это?

4b9b3361

Ответ 1

У меня была эта проблема сама, когда я недавно обновлял сайт.

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

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

Либо это, либо вам придется изменить заголовки, чтобы они выглядели так, будто они отправляются с внешнего адреса. Надеюсь, вы его отсортировали.

Ответ 2

Для людей, использующих Google Apps для электронной почты, но имеющих свой хост в другом провайдере, это более подробные инструкции для людей, которые не очень знакомы с cPanel.

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

то есть. mydomain.com Контактная форма, отправляющая электронное письмо по адресу c[email protected] Вышеуказанное не работает, даже если у моего домена есть правильные записи MX для домена с помощью Google Apps.

Как заметил Майк (и другие), проблема была решена: добавление записей MX в cPanel.

  • Войдите в cPanel
  • Перейдите в раздел cPanel Mail
  • Поиск MX Entry Maintenance, иногда над значком нет текста.
  • Выберите связанный домен
  • Изменить Электронная почта. Маршрутизация на Удаленный почтовый обмен.
  • Добавьте все записи Google MX, как они находятся в вашей конфигурации домена, с использованием соответствующих значений приоритета. Вы можете проверить записи здесь и приоритеты https://support.google.com/a/answer/174125
  • Дважды проверьте, что выбрано Remote Mail Exchanger..

С помощью этой настройки я смог отправить электронную почту с помощью функции электронной почты электронной почты на учетную запись электронной почты в том же домене, что и на моем веб-сайте.

Инструкции Google App о записи MX https://support.google.com/a/answer/54717?hl=en

Ответ 3

Верхний ответ на https://serverfault.com/questions/65365/disable-local-delivery-in-sendmail кажется мне правильным. Суть его в том, что вы хотите следующее в вашем sendmail.mc:

define(`MAIL_HUB`, 'example.com.')dnl
define(`LOCAL_RELAY`, 'example.com.')dnl

Где example.com является доменом, о котором идет речь.

Ответ 4

Если вы используете postfix, сделайте следующее:

  • подключитесь к вашему серверу через ssh.
  • отредактируйте файл main.cf:

nano /etc/postfix/main.cf

  1. прокомментируйте следующую строку с помощью #:

# mydestination = ...

  1. добавить в конец документа main.cf:

mydestination =

  1. перезагрузите конфигурацию постфикса, выполнив:

/etc/init.d/postfix reload

Ответ 5

Вам нужно установить дополнительный параметр в своей почтовой функции. В вашем рабочем примере вам нужно будет добавить свой адрес электронной почты с помощью "-f", например.

mail($toMail, $subject, $message, $header, "[email protected]");

Ответ 6

У меня была та же проблема и я смог решить ее следующим образом. Я не храню почту локально на сервере, но использую записи MX в регистраторе для прямой отправки сообщений в Google Apps. Оказалось, что записи MX необходимо обновить в Cpanel, так как сервер не брал записи MX у регистратора, а вместо этого отбрасывал, так как не было локальной записи MX или почтового ящика. Я обновил записи MX на Cpanel, чтобы соответствовать записи MX регистратора, и проблема была исправлена ​​мгновенно.

Ответ 7

У вас есть ваш адрес электронной почты, размещенный на другом сервере, чем веб-сайт? Если это так, PHP script может пытаться отправить его внутренне, и в этом случае он просто исчезнет, ​​а другие целевые электронные письма будут доставлены в Интернет и правильно маршрутизированы.

Решение, которое я нашел, это отключить почтовый сервер на вашем веб-хосте, а затем PHP будет отправлять сообщение в Интернет для правильной отправки.

Ответ 8

Я согласен с Майклом Хеллейном, проблема с корнем может быть вашей sendmail с учетом ваших учетных записей электронной почты домена example.com как локальных учетных записей. Если это так, здесь несколько ссылок:

Но в моем случае, используя FreeBSD 8.2, что действительно делало трюк:

# cd /etc/mail
# vim freebsd.mc

Добавьте эти две строки:

define(`MAIL_HUB', `example.com.')dnl
define(`LOCAL_RELAY', `example.com.')dnl

Прямо перед:

MAILER(local)
MAILER(smtp)

Тогда:

# make

Это выводится:

cp freebsd.mc host.example.com.mc
/usr/bin/m4 -D_CF_DIR_=/usr/share/sendmail/cf/   /usr/share/sendmail/cf/m4/cf.m4 host.example.com.mc > host.example.com.cf
cp freebsd.submit.mc host.example.com.submit.mc
/usr/bin/m4 -D_CF_DIR_=/usr/share/sendmail/cf/   /usr/share/sendmail/cf/m4/cf.m4 host.example.com.submit.mc > host.example.com.submit.cf

Тогда:

# cp sendmail.cf sendmail.cf.bak
# cp host.example.com.cf sendmail.cf
# /etc/rc.d/sendmail restart

Надеюсь, это сэкономит некоторые головные боли кому-то.

Ответ 9

С PostFix, Debian7, smtp Mailjet

Если домен my-domain.com, в /etc/postfix/main.cf, измените

mydestination = my-domain.com, localhost, localhost.localdomain, localhost

to

mydestination = localhost, localhost.localdomain, localhost

Ответ 10

убедитесь, что вы действительно можете отправить почту в свою учетную запись электронной почты домена, а затем проверить свой код/​​адрес электронной почты, убедитесь, что все написано правильно. Если ничего из этого не помогло, я не знаю, что пошло не так.

Ответ 11

Как объясняют другие, некоторые серверы настроены на отклонение писем с отсутствующим действительным адресом электронной почты на отправляющем сервере. Убедитесь, что строка $headers содержит определенный действительный адрес электронной почты "From: [email protected]".

Ответ 12

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

Ответ 13

У меня была эта проблема несколько раз, и виновником было то, что письмо было размещено на другом сервере (например, в Google Apps). Когда почта отправляется в локальный домен, он не беспокоится о поиске в записи MX, и поэтому он не будет правильно маршрутизироваться. Решение этой проблемы - просто просто отключить почтовую функцию на вашем сервере вашим хостом.

Ответ 14

У меня тоже была эта проблема. Отключение почтового сервера означало, что не было отправлено ни одного письма! Поэтому я исправил удаление всех локальных доменных имен из файла /etc/mail/local-host-names

Ответ 15

Убедитесь, что ваша запись txt настроена правильно для вашего домена. Обычно это происходит, если вы не помещаете это в запись txt: @ (None) v = spf1 include: _spf.google.com ~ all

Ответ 16

У меня была аналогичная проблема, когда все письма были прекрасно отправлены в другие домены, такие как gmail, live, yahoo и т.д., но все письма исчезли в локальных доменах. У меня был VPS-сервер с godaddy, на котором работал Linux на Qmail.

Я решил проблему, удалив определенные имена доменов в файле var/qmail/control/virtualdomains.

Ответ 17

Также может быть доступен почтовый сервер SMTP.

Ответ 18

Я трачу более 8 часов на эту ошибку и решает ее просто изменить заголовок на любой другой адрес электронной почты, и он будет работать