php.ini & SMTP = – как вы передаете имя пользователя и пароль

My ISP учетная запись My ISP требует, чтобы я отправил имя пользователя и пароль для исходящей почты SMTP .

Как заставить PHP использовать это при выполнении php.mail()? Файл php.ini содержит только записи для сервера (SMTP= ) и From: (sendmail_from= ) .

Команда PHP mail() не поддерживает аутентификацию. Ваши варианты:

  1. PHPMailer – учебник
  2. PEAR – учебник
  3. Пользовательские функции – см. Различные решения в разделе примечаний: http://php.net/manual/en/ref.mail.php

Я применяю следующие данные в файле php.ini. его работы прекрасны.

 SMTP = smtp.example.com smtp_port = 25 username = info@example.com password = yourmailpassord sendmail_from = info@example.com 

Эти данные такие же, как и в настройках Outlook.

Используйте Fake sendmail для Windows для отправки почты.

  1. Создайте папку с именем sendmail в папке C:\wamp\ .
  2. Извлеките эти 4 файла в папку sendmail : sendmail.exe , libeay32.dll , ssleay32.dll и sendmail.ini .
  3. Затем настройте C:\wamp\sendmail\sendmail.ini :
 smtp_server=smtp.gmail.com smtp_port=465 auth_username=user@gmail.com auth_password=your_password 
  1. Вышеуказанное будет работать против учетной записи Gmail. А затем настройте php.ini:

    sendmail_path = "C: \ wamp \ sendmail \ sendmail.exe -t"

  2. Теперь перезапустите Apache, и это в основном все, что вам нужно сделать.

У PHP есть аутентификация по почте!

Для меня работает WAMPSERVER (windows, php 5.2.17)

php.ini

 [mail function] ; For Win32 only. SMTP = mail.yourserver.com smtp_port = 25 auth_username = smtp-username auth_password = smtp-password sendmail_from = you@yourserver.com 

Я предпочитаю инструмент PHPMailer , поскольку он не требует PEAR. Но в любом случае у вас есть недоразумение: вы не хотите устанавливать PHP-сервер для пользователя и пароля SMTP. Это должно быть настройка для каждого приложения (или для каждой страницы). Если вы хотите использовать одну и ту же учетную запись на разных страницах PHP, добавьте ее в какой-то файл settings.php.

Работая весь день, я наконец нашел решение. Вот как я отправляю из Windows XP с помощью WAMP.

  1. Используйте SMTP-сервер Google. Вероятно, вам нужна учетная запись.
  2. Загрузите и установите Fake Sendmail . Я только что загрузил его, распаковал его и поместил в папку WAMP.
  3. Создайте тестовый PHP-файл. Смотри ниже.
 <?php $message = "test message body"; $result = mail('recipient@some-domain.com', 'message subject', $message); echo "result: $result"; ?> 
  1. Обновите файл php.ini и файл sendmail.ini (sendmail.ini находится в папке sendmail).
  2. Проверьте файл error.log в папке sendmail, которую вы только что создали, если он не работает.

Справка:

  1. Установите Postfix (совместим с Sendmail).
  2. Измените /etc/postfix/main.cf образом:
 #Relay config relayhost = smtp.server.net smtp_use_tls=yes smtp_sasl_auth_enable=yes smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd smtp_tls_CAfile = /etc/postfix/cacert.pem smtp_sasl_security_options = noanonymous 
  1. Создайте /etc/postfix/sasl_passwd , введите:
 smtp.server.net username:password 
  1. Тип # /usr/sbin/postmap sasl_passwd

  2. Затем запустите: service postfix reload

Теперь PHP будет запускать почту как обычно с помощью команды sendmail -t -i и Postfix перехватит ее и передаст ее на ваш SMTP-сервер, который вы предоставили.

Используйте Mail :: factory в пакете Mail PEAR. Пример.

Учитывая один ответ в этом вопросе , в PHP 4 пакет PEAR Mail обычно уже установлен, и этот действительно простой учебник показывает вам несколько строк кода, которые необходимо добавить в ваш php-файл http://email.about.com/ од / emailprogrammingtips / кварты / PHP_Email_SMTP_Authentication.htm

  1. Установите последний hMailServer . «Запустите hMailServer Administrator» на последнем шаге.
  2. Подключитесь к «localhost».
  3. «Добавить домен …»
  4. Установите «127.0.0.1». как «Домен», нажмите «Сохранить».
  5. «Настройки»> «Протоколы»> «SMTP»> «Доставка электронной почты»
  6. Установите «localhost» как «Локальное имя узла», укажите свои данные в разделе «Relay SMTP» , нажмите «Сохранить».
  7. «Настройки»> «Дополнительно»> «Диапазоны IP»> «Мой компьютер»
  8. Отключите флажок «Внешние внешние адреса электронной почты» в группе «Требовать проверку подлинности SMTP».
  9. Если вы изменили php.ini, перепишите эти 3 значения:

«SMTP = localhost»,

«smtp_port = 25»,

" ; sendmail_path =".

Как настроить WAMP (localhost) для отправки электронной почты с помощью Gmail?