функция php mail () - PullRequest
       2

функция php mail ()

2 голосов
/ 13 декабря 2011

Я новичок в php-кодировании и не очень разбираюсь в сетях (я начал 2 недели назад), поэтому, пожалуйста, потерпите меня.

  1. Недавно я столкнулся с функцией mail(). Прежде всего, я просто написал простой код, используя mail() без каких-либо изменений в файле php.ini, естественно, он не работал. Так что я погуглил причину; Я обнаружил, что для linux в [mail function] мы должны ввести sendmail_path имя сервера smtp. У меня есть аккаунт на yahoo.com, поэтому я набрал smtp.mail.yahoo.com, но это не сработало. Так что я снова погуглил и узнал, что там требуется smtp-сервер вашего провайдера. Моя программа проста в тестировании, и я хотел бы видеть почту в почтовом ящике адресата в результате кода php.

  2. Также сервер apache (который я использую для ответа на php-код) не поддерживает smtp? Что мешает ему обмениваться сообщениями? Если вы считаете, что мне нужно прочитать, пожалуйста, помогите мне с ссылкой.

  3. Есть ли разница между smtp yahoo / gmail и smtp моего isp, или это то, что smtp моего isp взаимодействует с smtp yahoo для отправки почты (потому что, хотя наше изменение isp, но мы продолжаем отправлять сообщения с использованием той же учетной записи yahoo )

Ответы [ 2 ]

2 голосов
/ 13 декабря 2011
  1. Вы неправильно прочитали информацию.Директива sendmail_path не ожидает имя сервера, она ожидает путь двоичного файла sendmail.В Linux вы не можете использовать внешний SMTP-сервер с простой функцией mail().

  2. Apache - веб-сервер.Если предлагает HTTP, но не любой другой сервис (например, SMTP или FTP).Возможно, вы перепутали с Microsoft IIS.

  3. Не уверен, что я понимаю вопрос, но в настоящее время почти никто не позволяет использовать его SMTP-сервер для отправки сторонней почты.Если вы хотите отправлять электронную почту как @yahoo.com, вам придется использовать SMTP-сервер Yahoo.

Некоторые дополнительные советы:

  • На серверах Linux обычно установлен локальный MTA (почтовый транспортный агент), поэтому вам не нужно иметь дело с внешними SMTP-сервисами.Неясно, пытались ли вы отправить электронное письмо, прежде чем что-то касаться.

  • Если вы хотите отправлять электронную почту через Yahoo, Gmail или другие подобные службы, вам лучше воспользоваться третьим.-партийная библиотека PHP, такая как PEAR :: Mail, PHPMailer или Swift Mailer.PHP изначально не поддерживает аутентификацию электронной почты.

2 голосов
/ 13 декабря 2011

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

Apache может взаимодействовать с почтовым сервером, таким как Sendmail, но не имеет встроенной поддержки.

Посетите веб-сайт Sendmail для получения информации об установке собственного SMTP-сервера или установке с использованием пакетов, предоставляемых для вашей ОС или дистрибутива.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...