Встала задача с помощью PHP скрипта отправлять уведомления на GMail почту. Вроде бы ничего сложного:
$from = "test@test.loc";
$to = "test@gmail.com";
$subject = "Test mail title";
$message = "Test mail description";
mail($to, $subject, $message,"Content-type:text/plain; charset = UTF-8\r\nFrom:$from"); |
$from = "test@test.loc";
$to = "test@gmail.com";
$subject = "Test mail title";
$message = "Test mail description";
mail($to, $subject, $message,"Content-type:text/plain; charset = UTF-8\r\nFrom:$from");
Чтобы настроить отправку писем, необходимо подправить php.ini:
[mail function]
; For Win32 only.
SMTP = smtp.gmail.com
smtp_port = 587
Думаете, работает? Нет! При попытке запустить скрипт выводится сообщение:
Warning: mail(): SMTP server response: 530 5.7.0 Must issue a STARTTLS command first.
Причина кроется в том, что GMail использует протокол шифрования TLS. Для того, чтобы все таки мы могли отправлять письма, нужно загрузить вот этот архив (содержит «fake sendmail for windows»), распоковать, в файле sendmail.ini изменить строки:
smtp_server=smtp.gmail.com
smtp_port=587
smtp_ssl=auto
auth_username=your_mail@gmail.com
auth_password=mail_password
А в php.ini закомментировать:
[mail function]
; For Win32 only.
; SMTP = smtp.gmail.com
; smtp_port = 587
и разкомментировать с указанием пути до sendmail.exe:
; For Unix only. You may supply arguments as well (default: "sendmail -t -i").
sendmail_path = "C:\php\extras\sendmail\sendmail.exe -t"