PHP — как отправить письмо с одного EMail на другой, с помощью SMTP+php?
Здравствуйте! Не могли бы пожалуйста помочь мне?(
Ниже прикладываю скрины директории, а также свой код. Сам я новичок в PHP, но мне была поставлена задача сделать отправку писем через PHP с одного EMail на другой, не через open server и т.п.
В общем вот мой код:
<?php require __DIR__ . '/PHPMailer.php'; require __DIR__ . '/SMTP.php'; require __DIR__ . '/Exception.php'; $mail = new PHPMailerPHPMailerPHPMailer; // Настройки SMTP $mail->isSMTP(); $mail->Host = 'smtp.mail.me.com'; $mail->Port = 587; $mail->SMTPSecure = 'tls'; $mail->SMTPAuth = true; $mail->Username = 'aleksandr_twitt@icloud.com'; $mail->Password = 'МОЙ ПАРОЛЬ|P.s.ОН ТОЧНО ВЕРЕН!'; $mail->CharSet = 'UTF-8'; $mail->SMTPOptions = array( 'ssl' => array( 'verify_peer' => false, 'verify_peer_name' => false, 'allow_self_signed' => true ) ); // Отправитель и получатель $mail->setFrom('aleksandr_twitt@icloud.com', 'Отправитель'); $mail->addAddress('laptev11aleks@mail.ru', 'Получатель'); // Тело письма $mail->isHTML(true); $mail->Subject = 'Тестовое письмо'; $mail->Body = 'Привет, это тестовое письмо.'; // Отправить письмо if(!$mail->send()) { echo 'Ошибка отправки письма: ' . $mail->ErrorInfo; } else { echo 'Письмо успешно отправлено!'; } ?> |
<?php require __DIR__ . '/PHPMailer.php'; require __DIR__ . '/SMTP.php'; require __DIR__ . '/Exception.php'; $mail = new PHPMailerPHPMailerPHPMailer; // Настройки SMTP $mail->isSMTP(); $mail->Host = 'smtp.mail.me.com'; $mail->Port = 587; $mail->SMTPSecure = 'tls'; $mail->SMTPAuth = true; $mail->Username = 'aleksandr_twitt@icloud.com'; $mail->Password = 'МОЙ ПАРОЛЬ|P.s.ОН ТОЧНО ВЕРЕН!'; $mail->CharSet = 'UTF-8'; $mail->SMTPOptions = array( 'ssl' => array( 'verify_peer' => false, 'verify_peer_name' => false, 'allow_self_signed' => true ) ); // Отправитель и получатель $mail->setFrom('aleksandr_twitt@icloud.com', 'Отправитель'); $mail->addAddress('laptev11aleks@mail.ru', 'Получатель'); // Тело письма $mail->isHTML(true); $mail->Subject = 'Тестовое письмо'; $mail->Body = 'Привет, это тестовое письмо.'; // Отправить письмо if(!$mail->send()) { echo 'Ошибка отправки письма: ' . $mail->ErrorInfo; } else { echo 'Письмо успешно отправлено!'; } ?>
А вот скрин его работы:
P.S. Надеюсь на Вашу помощь!!
Дополнительно:
МОЙ ПАРОЛЬ
вы используете пароль от аккаунта или пароль для приложений?
Изучали работу смтп от айклауда?
https://support.apple.com/en-us/HT202304
Ответы:
Информация о сервере SMTP исходящей почты iCloud
...
Пароль: используйте пароль для приложения, созданный при настройке сервера входящей почты.
Создание пароля для программы
- не воруй мой ответ :(
- Спасибо! Прочитаю)))
Но вот еще вопрос! Если я указывать icloud не буду, а вместо него будет mail-почта, то ошибка точно такая же! - aleksandr_twitt, Что такое mail-почта? Почта-почта?
STMP подключения не запрещены на сервере?
попробуйте
<?php
var_dump(fsockopen('smtp.mail.me.com', 587));
- и еще попробуйте
$mail->Host = 'ssl://smtp.mail.me.com';
и не указывать $mail->SMTPSecure = 'tls';
Если вы на локальном сервере, то сделать это НЕ возможно, только когда вы свой сайт поставили на хост
У вас нет соединения до SMTP-сервера: в ошибке написано, что вызов connect() неудачен. Возможно, порт 576 блокируется вашим хостером.
Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.
Пока нет других ответов. Будьте первым, кто поможет автору.
Ответить на вопрос

Для отправки письма с одного EMail на другой с помощью SMTP и PHP, вам необходимо использовать библиотеку PHPMailer. Эта библиотека позволяет легко отправлять электронные письма через SMTP сервер.
Вот пример кода, который демонстрирует, как отправить письмо с одного EMail на другой с помощью SMTP и PHPMailer:
isSMTP(); $mail->Host = 'smtp.example.com'; // SMTP сервер $mail->SMTPAuth = true; $mail->Username = 'your_email@example.com'; // Ваш EMail $mail->Password = 'your_password'; // Ваш пароль $mail->SMTPSecure = 'ssl'; $mail->Port = 465; $mail->setFrom('your_email@example.com', 'Your Name'); $mail->addAddress('recipient@example.com', 'Recipient Name'); $mail->isHTML(true); $mail->Subject = 'Subject of the email'; $mail->Body = 'Body of the email'; $mail->send(); echo 'Email has been sent'; } catch (Exception $e) { echo 'Message could not be sent. Mailer Error: ' . $mail->ErrorInfo; } ?>
В этом примере мы используем PHPMailer для отправки письма. Вы должны установить PHPMailer с помощью Composer, чтобы использовать этот код. Убедитесь, что у вас есть правильные учетные данные для вашего SMTP сервера, такие как хост, имя пользователя, пароль и порт.
Теперь у вас должна быть возможность отправлять письма с одного EMail на другой с помощью SMTP и PHP!