Отправить письмо от localhost с gmail (windows)

Я хочу использовать функцию mail() из моего localhost. У меня установлен WAMP и учетная запись Gmail. Я знаю, что SMTP для Gmail - это smtp.gmail.com, а порт - 465. Что мне нужно настроить в WAMP, чтобы я мог использовать функцию mail()? Благодаря

Ответы

Ответ 1

Ответ Ayush был очень полезен, ниже слегка упрощенного подхода
1) Загрузите PHPMailer
2) Извлечь в папку внутри вашего php-проекта и переименовать его в phpmailer
3) Создайте gmail-sample.php и вставьте следующий код:

    <?php
    require("phpmailer/class.phpmailer.php");
    $mail = new PHPMailer();

    // ---------- adjust these lines ---------------------------------------
    $mail->Username = "[email protected]"; // your GMail user name
    $mail->Password = "your-gmail-password"; 
    $mail->AddAddress("[email protected]"); // recipients email
    $mail->FromName = "your name"; // readable name

    $mail->Subject = "Subject title";
    $mail->Body    = "Here is the message you want to send to your friend."; 
    //-----------------------------------------------------------------------

    $mail->Host = "ssl://smtp.gmail.com"; // GMail
    $mail->Port = 465;
    $mail->IsSMTP(); // use SMTP
    $mail->SMTPAuth = true; // turn on SMTP authentication
    $mail->From = $mail->Username;
    if(!$mail->Send())
        echo "Mailer Error: " . $mail->ErrorInfo;
    else
        echo "Message has been sent";
    ?>

4) Отправлять почту из браузера (например http://localhost/your-project/gmail-sample.php).

Ответ 2

Я использовал для получения "Ошибка SMTP: не удалось подключиться к узлу SMTP".

Эта ошибка возникает из-за XAMPP (1.7.7) и его сервера Apache, опция "SSL" по умолчанию не включена. Поэтому мы должны сами это задействовать.

Что делать? В файл PHP.ini вашего XAMPP вы должны добавить следующее расширение (которое не написано и не прокомментировано): extension=php_openssl.dll

Сохраните файл php.ini, перезапустите сервер Apache и... наслаждайтесь!

Лично он работает с:
Port = 465
Host = smtp.gmail.com
SMTPAuth = true
SMTPDebug = 1
SMTPSecure = 'ssl'

Ответ 3

Убедитесь, что установлен пакет PEAR Mail.

<?php
 require_once "Mail.php";

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

 $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>");
  }
 ?>

Или вы можете использовать сторонний php-класс для отправки писем. как PHPMailer, который намного проще

PHPMailer