Передача недопустимого сообщения при отправке почты с функцией PHP - PullRequest
0 голосов
/ 23 мая 2011

Я использую Wamp-сервер и пытаюсь отправить письмо с помощью функции PHP mail('me@ISPdomain.com','my subject','my body');,
со следующими настройками в php.ini:

SMTP = 'ISP's SMTP server'  
smtp_port = 25 

Но я получаю сообщение:

Warning: mail() [function.mail]: SMTP server response: 550 5.7.1 Relaying not allowed. Please use SMTP Authentication.

Как это можно решить?

Ответы [ 3 ]

4 голосов
/ 23 мая 2011

Почтовые серверы вашего интернет-провайдера не допускают «ретрансляцию», и это хорошо, так как в противном случае они могут спамить много спама.

http://en.wikipedia.org/wiki/Open_mail_relay

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

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

Выможно попробовать взломать эту строку php.ini, которая выглядит следующим образом:

SMTP = 'username:password@ISP's SMTP server address'

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

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

Я не знаю, что рекомендуется использовать с WampServer, но с WampDeveloper Pro рекомендуются следующие локальные почтовые серверы:

  1. hmailserver
  2. mailenable
  3. Smartermail

Вы должны увидеть характеристики и требования каждого из них.Я полагаю, что один из них может помешать работе MySQL (так как установщик попытается разместить его собственную копию).

1 голос
/ 23 мая 2011

Как говорится в сообщении об ошибке, вам необходимо использовать SMTP-аутентификацию для этого сервера.

Это невозможно при использовании встроенных возможностей PHP SMTP.

Самый простой способ - использовать готовый класс почтовой программы, такой как Swiftmailer . Здесь - пример того, как это сделать.

1 голос
/ 23 мая 2011

Сервер SMTP ISPdomain.com, вероятно, жалуется, что ваше соединение слишком простое для его правил защиты от спама.

...