My ISP
требуется отправить имя пользователя и пароль для исходящей почты SMTP
.
Как мне получить PHP
для использования этого при выполнении php.mail()?
Файл php.ini
содержит только записи для сервера (SMTP= )
и From: (sendmail_from= )
.
My ISP
требуется отправить имя пользователя и пароль для исходящей почты SMTP
.
Как мне получить PHP
для использования этого при выполнении php.mail()?
Файл php.ini
содержит только записи для сервера (SMTP= )
и From: (sendmail_from= )
.
PHP mail()
не поддерживает аутентификацию. Ваши варианты:
Я применяю следующие данные в файле php.ini. его работы прекрасны.
SMTP = smtp.example.com
smtp_port = 25
username = [email protected]
password = yourmailpassord
sendmail_from = [email protected]
Эти данные аналогичны настройкам Outlook.
Используйте Fake sendmail для Windows для отправки почты.
sendmail
в C:\wamp\
.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
Вышеуказанное будет работать против учетной записи Gmail. А затем настройте php.ini:
sendmail_path = "C:\wamp\sendmail\sendmail.exe -t"
Теперь перезапустите 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 = [email protected]
Я предпочитаю инструмент PHPMailer, поскольку он не требует PEAR. Но в любом случае у вас есть недоразумение: вы не хотите устанавливать PHP-сервер для пользователя и пароля SMTP. Это должно быть настройка для каждого приложения (или для каждой страницы). Если вы хотите использовать одну и ту же учетную запись на разных страницах PHP, добавьте ее в какой-то файл settings.php.
После всего этого дня, я наконец нашел решение. Вот как я отправляю из Windows XP с помощью WAMP.
<?php $message = "test message body"; $result = mail('[email protected]', 'message subject', $message); echo "result: $result"; ?>
Ссылка:
/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
/etc/postfix/sasl_passwd
, введите:smtp.server.net username:password
Тип # /usr/sbin/postmap sasl_passwd
Затем запустите: service postfix reload
Теперь PHP будет запускать почту как обычно с помощью команды sendmail -t -i
, и Postfix перехватит ее и передаст ее на ваш SMTP-сервер, который вы предоставили.
Использовать Mail:: factory в пакете Mail PEAR. Пример.
Эти ответы устарели и обесценились. Лучшая практика..
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";
}
Это можно настроить, как вам нравится.
Учитывая один ответ в этом вопросе, в PHP 4 пакет PEAR Mail обычно уже установлен, и этот действительно простой учебник показывает вам несколько строк кода, которые вы нужно добавить в ваш php файл http://email.about.com/od/emailprogrammingtips/qt/PHP_Email_SMTP_Authentication.htm
"SMTP = localhost",
"smtp_port = 25",
"; sendmail_path =".
Кредит: Как настроить WAMP (localhost) для отправки электронной почты с помощью Gmail?