Я хочу использовать функцию mail () с моего localhost. У меня установлен WAMP и учетная запись Gmail. Я знаю, что SMTP для Gmail – это smtp.gmail.com, а порт – 465. Что мне нужно настроить в WAMP, чтобы я мог использовать функцию mail ()? благодаря
Ответ Ayush был очень полезен, ниже немного упрощенного подхода
1) Загрузить PHPMailer
2) Извлечь в папку внутри вашего php-проекта и переименовать его в phpmailer
3) Создайте gmail-sample.php и вставьте следующий код:
<?php require("phpmailer/class.phpmailer.php"); $mail = new PHPMailer(); // ---------- adjust these lines --------------------------------------- $mail->Username = "your.username@gmail.com"; // your GMail user name $mail->Password = "your-gmail-password"; $mail->AddAddress("friends.email@domain.com"); // 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 ).
Я использовал для получения «Ошибка 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'
Убедитесь, что установлен пакет PEAR Mail.
<?php require_once "Mail.php"; $from = "Sandra Sender <sender@example.com>"; $to = "Ramona Recipient <recipient@example.com>"; $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