[PHP] Использование mail() для работы с SMTP (GMail)

Встала задача с помощью 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");

Чтобы настроить отправку писем, необходимо подправить 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"