Как настроить WAMP (localhost) для отправки электронной почты с помощью Gmail?
Я хочу использовать функцию mail() с моего локального хоста. У меня установлен WAMP и учетная запись Gmail. Я знаю, что SMTP для Gmail - smtp.gmail.com, а порт - 465 ( больше информации из gmail). Что мне нужно настроить в WAMP, чтобы я мог использовать функцию mail()?
Спасибо!!
9 ответов
Серверы Gmail используют SMTP-аутентификацию по SSL или TLS. Я думаю, что нет никакого способа использовать mail()
функционировать в этих условиях, поэтому вы можете проверить эти альтернативы:
Все они поддерживают SMTP-аутентификацию по SSL.
Вам нужно будет включить php_openssl
расширение в вашем php.ini.
Дополнительные ресурсы:
- Как отправить письмо из скрипта PHP с использованием аутентификации SMTP (используя
PEAR::Mail
) - Отправить письмо, используя PHP с Gmail (используя phpMailer)
- Рассылка с использованием
Nette\Mail
[Использование hMailServer]
После установки вам потребуется следующая конфигурация для правильной отправки почты с wampserver:
1) When you first open hMailServer Administrator, you need to add a new domain.
2) Click on the "Add Domain ..." button at the Welcome page.
3) Under the domain text field, enter your computer's IP, in this case it should be 127.0.0.1.
4) Click on the Save button.
5) Go to Settings>Protocols>SMTP and select "Delivery of Email" tab
6) Enter "localhost" in the localhost name field.
7) Click on the Save button.
Если вам нужно отправить почту, используя адрес получателя FROM другого компьютера, вам нужно разрешить доставку с внешних на внешние учетные записи. Для этого выполните следующие действия:
1) Go to Settings>Advanced>IP Ranges and double click on "My Computer" which should have IP address of 127.0.0.1
2) Check the Allow Deliveries from External to External accounts checkbox.
3) Save settings using Save button.
(Однако Windows Live/Hotmail отклоняет все электронные письма, приходящие с динамических IP-адресов, которые используются большинством жилых компьютеров. Обходной путь должен использовать учетную запись Gmail)
Чтобы использовать учетную запись Gmail:
1) Go to Settings>Protocols>SMTP and select "Delivery of Email" tab
2) Enter "smtp.gmail.com" in the Remote Host name field.
3) Enter "465" as the port number
4) Check "Server requires authentication"
5) Enter gmail address in the Username
6) Enter gmail password in the password
7) Check "Use SSL"
(Обратите внимание, поле "От" не работает с Gmail)
* ps в редких случаях может понадобиться снять все require SMTP authentication
в:
- для локальных: Настройки> Дополнительно>IP-диапазоны>"Мой компьютер"
- для внешнего: Настройки> Дополнительно>IP-диапазоны>"Интернет"
Если вы откроете файл 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 и другим вы можете использовать библиотеку Zend
$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);
Это мои настройки на локальном сервере, и я могу видеть входящую почту на свой почтовый ящик.
Использовать stunnel на вашем сервере, чтобы отправить с Gmail. погугли это.
Я знаю, в XAMPP я могу настроить sendmail.ini для пересылки локальной электронной почты. нужно установить
smtp_sever
smtp_port
auth_username
auth_password
это работает при использовании моего собственного сервера, а не Gmail, поэтому не могу сказать наверняка, у вас не будет проблем
Я уверен, что для этого потребуются также учетные данные для аутентификации SMTP.
Груша: Почта работала для меня, отправляя сообщения электронной почты из Gmail. Также очень помогли инструкции: Как отправить письмо из PHP-скрипта с использованием SMTP-аутентификации (используя PEAR::Mail). Спасибо, CMS!