Отправить письмо от 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