PHP — как отправить письмо с одного EMail на другой, с помощью SMTP+php?

Ссылка скопирована
1 ответ

Здравствуйте! Не могли бы пожалуйста помочь мне?(
Ниже прикладываю скрины директории, а также свой код. Сам я новичок в 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 'Письмо успешно отправлено!'; } ?>

А вот скрин его работы:

PHP — как отправить письмо с одного EMail на другой, с помощью SMTP+php?

P.S. Надеюсь на Вашу помощь!!

Дополнительно:

МОЙ ПАРОЛЬ

вы используете пароль от аккаунта или пароль для приложений?
Изучали работу смтп от айклауда?
https://support.apple.com/en-us/HT202304

  • maksam07, а что значит пароль для приложений?(
  • Ответы:

    Информация о сервере 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 блокируется вашим хостером.

    Нужно решить такую задачу?

    Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.

    Заказать помощь
    Лучший ответ
    1
    Дмитрий К. Ответ

    Для отправки письма с одного EMail на другой с помощью SMTP и PHP, вам необходимо использовать библиотеку PHPMailer. Эта библиотека позволяет легко отправлять электронные письма через SMTP сервер.

    Вот пример кода, который демонстрирует, как отправить письмо с одного EMail на другой с помощью SMTP и PHPMailer:

    isSMTP();
        $mail-&gt;Host = 'smtp.example.com'; // SMTP сервер
        $mail-&gt;SMTPAuth = true;
        $mail-&gt;Username = 'your_email@example.com'; // Ваш EMail
        $mail-&gt;Password = 'your_password'; // Ваш пароль
        $mail-&gt;SMTPSecure = 'ssl';
        $mail-&gt;Port = 465;
     
        $mail-&gt;setFrom('your_email@example.com', 'Your Name');
        $mail-&gt;addAddress('recipient@example.com', 'Recipient Name');
     
        $mail-&gt;isHTML(true);
        $mail-&gt;Subject = 'Subject of the email';
        $mail-&gt;Body = 'Body of the email';
     
        $mail-&gt;send();
        echo 'Email has been sent';
    } catch (Exception $e) {
        echo 'Message could not be sent. Mailer Error: ' . $mail-&gt;ErrorInfo;
    }
    ?&gt;

    isSMTP(); $mail-&gt;Host = 'smtp.example.com'; // SMTP сервер $mail-&gt;SMTPAuth = true; $mail-&gt;Username = 'your_email@example.com'; // Ваш EMail $mail-&gt;Password = 'your_password'; // Ваш пароль $mail-&gt;SMTPSecure = 'ssl'; $mail-&gt;Port = 465; $mail-&gt;setFrom('your_email@example.com', 'Your Name'); $mail-&gt;addAddress('recipient@example.com', 'Recipient Name'); $mail-&gt;isHTML(true); $mail-&gt;Subject = 'Subject of the email'; $mail-&gt;Body = 'Body of the email'; $mail-&gt;send(); echo 'Email has been sent'; } catch (Exception $e) { echo 'Message could not be sent. Mailer Error: ' . $mail-&gt;ErrorInfo; } ?&gt;

    В этом примере мы используем PHPMailer для отправки письма. Вы должны установить PHPMailer с помощью Composer, чтобы использовать этот код. Убедитесь, что у вас есть правильные учетные данные для вашего SMTP сервера, такие как хост, имя пользователя, пароль и порт.

    Теперь у вас должна быть возможность отправлять письма с одного EMail на другой с помощью SMTP и PHP!

    Другие ответы (0)

    Пока нет других ответов. Будьте первым, кто поможет автору.

    Ответить на вопрос

    комментарий

    Ваш адрес email не будет опубликован. Обязательные поля помечены *

    Вам также может быть интересно