У меня простая настройка скрипта:
<?php
mail('corgan1003@aol.com', 'Hello World', 'Testing a message');
?>
Я не могу отправлять электронную почту со своего сервера в учетные записи AOL. Подробная информация об ошибке приведена ниже. GMail позволяет мне отправлять сообщения ... так что я думаю, что AOL немного строже.
Starting tcpick 0.2.1 at 2009-08-03 22:25 UTC
Timeout for connections is 600
tcpick: reading from tcp_dump.pcap
1 SYN-SENT 67.23.28.65:49516 > 64.12.138.153:smtp
1 SYN-RECEIVED 67.23.28.65:49516 > 64.12.138.153:smtp
1 ESTABLISHED 67.23.28.65:49516 > 64.12.138.153:smtp
220-rly-mg05.mx.aol.com ESMTP mail_relay_in-mg05.6; Mon, 03 Aug 2009 18:25:34 -0400
220-America Online (AOL) and its affiliated companies do not
220- authorize the use of its proprietary computers and computer
220- networks to accept, transmit, or distribute unsolicited bulk
220- e-mail sent from the internet. Effective immediately: AOL
220- may no longer accept connections from IP addresses which
220 have no reverse-DNS (PTR record) assigned.
EHLO bandop.com
250-rly-mg05.mx.aol.com fallsroadsunoco.com
250 HELP
MAIL FROM:<www-data@com>
501 SYNTAX ERROR IN PARAMETERS OR ARGUMENTS
RSET
250 OK
QUIT
1 FIN-WAIT-1 67.23.28.65:49516 > 64.12.138.153:smtp
2 SYN-SENT 67.23.28.65:45729 > 216.239.113.101:smtp
1 FIN-WAIT-2 67.23.28.65:49516 > 64.12.138.153:smtp
221 SERVICE CLOSING CHANNEL
1 RESET 67.23.28.65:49516 > 64.12.138.153:smtp
3 SYN-SENT 67.23.28.65:45729 > 216.239.113.101:smtp
tcpick: done reading from tcp_dump.pcap
20 packets captured
3 tcp sessions detected
Вы знаете, как сделать так, чтобы параметр FROM выводился правильно? Установка заголовка FROM в почтовой функции PHP не работает.
ОБНОВИТЬ
Этот небольшой прием работает, но я бы предпочел исправить эту проблему вне PHP.
mail('corgan1003@aol.com', 'Hello World', 'Testing a message', null,'-faddress@domain.com');
Я супер новичок с почтовыми серверами
С AOL они часто не проходят, пока вы не заполните форма для попадания в белый список. Чтобы изменить источник почты, отредактируйте параметр sendmail_path в файле php.ini. Об этом говорится в php mail () doc в дополнительных_параметрах.
Например:
sendmail_path = "/usr/sbin/sendmail -t -f me@kyle.com"
Вы также можете передать вместо этого параметр функции mail ():
<?php
mail('nobody@example.com', 'the subject', 'the message', null,
'-fwebmaster@example.com');
?>
Наконец, вы можете найти альтернативный почтовый пакет более гибким, например ГРУША ПОЧТА пакет или мсмтп, вы можете указать другие серверы smtp.
Вы хотите изменить адрес From: конверта, который отличается от заголовка From :. Видеть этот комментарий в документе функции mail ().
Адрес конверта зависит от конфигурации вашего MTA - в вашем случае «www-data» - это пользователь, от имени которого запускается ваш скрипт, а «com» - (часть?) Имени хоста вашего компьютера. Предполагая, что вы используете * nix, вы можете попытаться переопределить адрес конверта следующим образом:
mail('corgan1003@aol.com', 'Hello World', 'Testing a message', null,'-faddress@domain.com');
где address@domain.com - это адрес отправителя конверта, который вы хотите показать.
Если это сработает и у вас есть доступ к вашему файлу php.ini, вы можете установить там адрес отправителя конверта - см. Сообщение Кайла.
Вы также можете взглянуть на конфигурацию вашего MTA (sendmail, postfix) - похоже, у него проблема с настройкой вашего имени хоста. Изменение настроек php-s исправит это для php, но если что-то еще (cron, logwatch) в вашей системе хочет отправлять почту, было бы полезно иметь работающий MTA.
Отредактируйте после вашего комментария: Трудно что-либо предложить, не зная конфигурации вашего почтового сервера, но для начала попробуйте следующее:
myhostname = mail.virtualhostname.com
mydomain = virtualhostname.com
myorigin = $mydomain
masquerade_domains = virtualhostname.com
Попробуйте избежать знака at.
mail('corgan1003\@aol.com', 'Hello World', 'Testing a message');