Как настроить WAMP (localhost) для отправки электронной почты с помощью Gmail?
Вопрос
Я хочу использовать функцию mail() с моего локального хоста.У меня установлен WAMP и учетная запись Gmail.Я знаю, что SMTP для Gmail — smtp.gmail.com, а порт — 465 (дополнительная информация из Gmail).Что мне нужно настроить в WAMP, чтобы я мог использовать функцию mail()?
Спасибо!!
Решение
Серверы Gmail используют аутентификацию SMTP по протоколу SSL или TLS.Я думаю, что нет возможности использовать mail()
функционировать в этих обстоятельствах, поэтому вы можете проверить эти альтернативы:
Все они поддерживают аутентификацию SMTP по SSL.
Вам нужно будет включить php_openssl
расширение в вашем php.ini.
Дополнительные ресурсы:
- Как отправить электронное письмо из PHP-скрипта с использованием SMTP-аутентификации (с использованием
PEAR::Mail
) - Отправка электронной почты с помощью PHP с помощью Gmail (с использованием phpMailer)
- Почтовое отправление с использованием
Nette\Mail
Другие советы
Я ответил на это здесь: (WAMP/XAMP) отправлять почту с использованием локального хоста SMTP (работает не только GMAIL, но и у других тоже).
Если вы откроете файл php.ini в Wamp, вы найдете эти две строки:
smtp_server
smtp_port
Добавьте номер сервера и порта для вашего хоста (возможно, вам придется связаться с ним для получения подробной информации).
Следующие две строки не существуют:
auth_username
auth_password
Поэтому вам нужно будет добавить их, чтобы иметь возможность отправлять почту с сервера, требующего аутентификации.Итак, примером может быть:
smtp_server = mail.example.com
smtp_port = 26
auth_username = example_username@example.com
auth_password = example_password
Это довольно просто.(адаптируйте синтаксис для вашего удобства)
public $smtp = array(
'transport' => 'Smtp',
'from' => 'your_email@gmail.com',
'host' => 'ssl://smtp.gmail.com',
'port' => 465,
'timeout' => 30,
'username' => 'your_email@gmail.com',
'password' => '*****'
)
В качестве альтернативы PHPMailer, Pear's Mail и других вы можете использовать Библиотека Зенда
$config = array('auth' => 'login',
'ssl' => 'ssl',
'port'=> 465,
'username' => 'XXXX@gmail.com',
'password' => 'XXXXXXX');
$transport = new Zend_Mail_Transport_Smtp('smtp.gmail.com', $config);
$mail = new Zend_Mail();
$mail->setBodyText('This is the text of the mail.');
$mail->setFrom('XXXX@gmail.com', 'Some Sender');
$mail->addTo('kazifriend@gmail.com', 'Some Recipient');
$mail->setSubject('TestSubj');
$mail->send($transport);
Это моя настройка на локальном сервере, и я могу видеть входящую почту в свой почтовый ящик.
я знаю, что в XAMPP я могу настроить sendmail.ini для пересылки локальной электронной почты.нужно установить
smtp_sever
smtp_port
auth_username
auth_password
это работает при использовании моего собственного сервера, а не Gmail, поэтому не могу сказать наверняка, что у вас не возникнет проблем
используйте stunnel на своем сервере для отправки через Gmail.погугли это.
Я уверен, что для этого также потребуются учетные данные аутентификации SMTP.
ГРУША:Почта у меня работало при отправке сообщений электронной почты из Gmail.Также инструкция: Как отправить электронное письмо из PHP-скрипта с использованием SMTP-аутентификации (Использование PEAR::Mail) очень помогло.Спасибо, CMS!