PHP-почта с использованием Gmail

В моем PHP-веб-приложении я хочу получать уведомления по электронной почте о возникновении определенных ошибок. Я хотел бы использовать мою учетную запись Gmail для отправки этих. Как это можно сделать?

Ответ 1

SMTP-сервер Gmail требует очень специфической конфигурации.

Из Справка Gmail:

Outgoing Mail (SMTP) Server (requires TLS)
 - smtp.gmail.com
 - Use Authentication: Yes
 - Use STARTTLS: Yes (some clients call this SSL)
 - Port: 465 or 587
Account Name:   your full email address (including @gmail.com)
Email Address:  your email address ([email protected])
Password:     your Gmail password 

Вы можете установить эти настройки в Pear:: Mail или PHPMailer. Ознакомьтесь с их документацией для получения более подробной информации.

Ответ 2

Вы можете использовать почтовую функцию PEAR с SMTP-сервером Gmail

Обратите внимание, что при отправке электронной почты с использованием SMTP-сервера Gmail он будет выглядеть так, как будто он получен с вашего адреса Gmail, несмотря на то, что вы стоите за $from.

(следующий код из Советы по программированию на сайте)

<?php
require_once "Mail.php";

$from = "Sandra Sender <[email protected]>";
$to = "Ramona Recipient <[email protected]>";
$subject = "Hi!";
$body = "Hi,\n\nHow are you?";

// stick your GMAIL SMTP info here! ------------------------------
$host = "mail.example.com";
$username = "smtp_username";
$password = "smtp_password";
// --------------------------------------------------------------

$headers = array ('From' => $from,
  'To' => $to,
  'Subject' => $subject);
$smtp = Mail::factory('smtp',
  array ('host' => $host,
    'auth' => true,
    'username' => $username,
    'password' => $password));

$mail = $smtp->send($to, $headers, $body);

if (PEAR::isError($mail)) {
  echo("<p>" . $mail->getMessage() . "</p>");
 } else {
  echo("<p>Message successfully sent!</p>");
 }
?>