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

Для учетной записи

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

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

Ответ 2

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

SMTP = smtp.example.com
smtp_port = 25
username = [email protected]
password = yourmailpassord
sendmail_from = [email protected]

Эти данные аналогичны настройкам Outlook.

Ответ 3

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

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

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

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

Ответ 4

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 = [email protected]

Ответ 5

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

Ответ 6

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

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

Ссылка:

Ответ 7

  • Установить Postfix (совместимый с Sendmail).
  • Изменить /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-сервер, который вы предоставили.

Ответ 8

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

Ответ 9

Эти ответы устарели и обесценились. Лучшая практика..

composer require phpmailer/phpmailer

Следующий в вашем файле sendmail.php просто требует следующего

# use namespace
use PHPMailer\PHPMailer\PHPMailer;

# require php mailer
require_once "../vendor/autoload.php";

//PHPMailer Object
$mail = new PHPMailer;

//From email address and name
$mail->From = "[email protected]";
$mail->FromName = "Full Name";

//To address and name
$mail->addAddress("[email protected]", "Recepient Name");
$mail->addAddress("[email protected]"); //Recipient name is optional

//Address to which recipient will reply
$mail->addReplyTo("[email protected]", "Reply");

//CC and BCC
$mail->addCC("[email protected]");
$mail->addBCC("[email protected]");

//Send HTML or Plain Text email
$mail->isHTML(true);

$mail->Subject = "Subject Text";
$mail->Body = "<i>Mail body in HTML</i>";
$mail->AltBody = "This is the plain text version of the email content";

if(!$mail->send()) 
{
    echo "Mailer Error: " . $mail->ErrorInfo;
} 
else 
{
    echo "Message has been sent successfully";
}

Это можно настроить, как вам нравится.

Ответ 11

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

"SMTP = localhost",

"smtp_port = 25",

"; sendmail_path =".

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