Невозможно отправлять электронные письма в мой собственный домен через SMTP-сервер SendGrid

Я пытаюсь использовать серверы SendGrid SMTP для отправки электронных писем из контактной формы на моей веб-странице.

Я установил PHPMailer на свой веб-сервер и настроил учетные данные SMTP в своей форме php, и он отлично работает, когда получатель ("to") является учетной записью gmail. Однако, если я изменю эту учетную запись на один из моего собственного домена, то есть [email protected], я никогда не получу это письмо.

Я не знаю, нужно ли мне настраивать что-либо еще в моей учетной записи SendGrid или в моем коде php.

Вот мой код php:

<?php

require_once "vendor/autoload.php";

$mail = new PHPMailer;

//Enable SMTP debugging.
$mail->SMTPDebug = 1;
//Set PHPMailer to use SMTP.
$mail->isSMTP();
//Set SMTP host name
$mail->Host = " smtp.sendgrid.net";
//Set this to true if SMTP host requires authentication to send email
$mail->SMTPAuth = true;
//Provide username and password
$mail->Username = "apikey";
$mail->Password = "mySMTPPassword";
//If SMTP requires TLS encryption then set it
//$mail->SMTPSecure = "tls";
//Set TCP port to connect to
$mail->Port = 587;

$mail->From = "[email protected]";
$mail->FromName = "Full Name";

$mail->smtpConnect(
    array(
        "ssl" => array(
            "verify_peer" => false,
            "verify_peer_name" => false,
            "allow_self_signed" => true
        )
    )
);

$mail->addAddress("[email protected]", "Recepient Name");

$mail->isHTML(true);

$mail->Subject = "Contact form";
$mail->Body = "<i>You have received a new message!</i>";
$mail->AltBody = "This is the plain text";

if (!$mail->send())
{
    echo "Mailer Error: " . $mail->ErrorInfo;
}
else
{
    echo "Message has been sent successfully";
}

Обновлено:

I changed SMTPDebug mode to 2, and it seems everything is OK for me:

2018-08-09 14:08:15 CLIENT -> SERVER: AUTH LOGIN

2018-08-09 14:08:15 SERVER -> CLIENT: 334 

2018-08-09 14:08:15 CLIENT -> SERVER: YXBpa2V5

2018-08-09 14:08:15 SERVER -> CLIENT: 334 

2018-08-09 14:08:15 CLIENT -> SERVER: 

2018-08-09 14:08:16 SERVER -> CLIENT: 235 Authentication successful

2018-08-09 14:08:16 CLIENT -> SERVER: MAIL FROM:<[email protected]>

2018-08-09 14:08:16 SERVER -> CLIENT: 250 Sender address accepted

2018-08-09 14:08:16 CLIENT -> SERVER: RCPT TO:<hellomyowndomain.com>

2018-08-09 14:08:16 SERVER -> CLIENT: 250 Recipient address accepted

2018-08-09 14:08:16 CLIENT -> SERVER: DATA

2018-08-09 14:08:16 SERVER -> CLIENT: 354 Continue

2018-08-09 14:08:16 CLIENT -> SERVER: Date: Thu, 9 Aug 2018 07:08:16 -0700

2018-08-09 14:08:16 CLIENT -> SERVER: To: Recepient Name <hellowmyowndomain.com>

2018-08-09 14:08:16 CLIENT -> SERVER: From: Full Name <[email protected]>

2018-08-09 14:08:16 CLIENT -> SERVER: Subject: Contact form

2018-08-09 14:08:16 CLIENT -> SERVER: Message-ID: <@localhost>

2018-08-09 14:08:16 CLIENT -> SERVER: X-Mailer: PHPMailer 5.2.26 
(https://github.com/PHPMailer/PHPMailer)

2018-08-09 14:08:16 CLIENT -> SERVER: MIME-Version: 1.0

2018-08-09 14:08:16 CLIENT -> SERVER: Content-Type: multipart/alternative;

2018-08-09 14:08:16 CLIENT -> SERVER: Content-Transfer-Encoding: 8bit

2018-08-09 14:08:16 CLIENT -> SERVER:

2018-08-09 14:08:16 CLIENT -> SERVER: This is a multi-part message in MIME 
format.

2018-08-09 14:08:16 CLIENT -> SERVER:

2018-08-09 14:08:16 CLIENT -> SERVER: Content-Type: text/plain; charset=us-ascii

2018-08-09 14:08:16 CLIENT -> SERVER:

2018-08-09 14:08:16 CLIENT -> SERVER: This is the plain text

2018-08-09 14:08:16 CLIENT -> SERVER:

2018-08-09 14:08:16 CLIENT -> SERVER: Content-Type: text/html; charset=us-ascii

2018-08-09 14:08:16 CLIENT -> SERVER:

2018-08-09 14:08:16 CLIENT -> SERVER: <i>You have received a new message!</i>

2018-08-09 14:08:16 CLIENT -> SERVER:

2018-08-09 14:08:16 CLIENT -> SERVER:

2018-08-09 14:08:16 CLIENT -> SERVER:

2018-08-09 14:08:16 CLIENT -> SERVER:

2018-08-09 14:08:16 CLIENT -> SERVER: .

2018-08-09 14:08:16 SERVER -> CLIENT: 250 Ok: queued as 

2018-08-09 14:08:16 CLIENT -> SERVER: QUIT

2018-08-09 14:08:16 SERVER -> CLIENT: 221 See you later

Message has been sent successfully

Вы не можете проверить в интерфейсе Sendgrids, что случилось с электронной почтой?

KIKO Software 09.08.2018 15:59

Почему вы отключаете проверку сертификата? Это действительно плохая идея. Установите SMTPDebug = 2, чтобы вы могли видеть, что говорит SendGrid, а затем проверяйте статус отправленных вами сообщений в их собственных инструментах.

Synchro 09.08.2018 16:03

вы также можете прочитать эта документация sendgrid, чтобы настроить аутентификацию вашего домена.

YvesLeBorg 09.08.2018 16:04

Я редактировал с отладочной информацией.

user2512569 09.08.2018 16:20

В строке 2018-08-09 14:08:16 SERVER -> CLIENT: 250 Ok: queued as вы должны получить ту уникальную строку, которую она вам предоставляет, и перейти к Поддержка SendGrid. Они могут использовать это, чтобы увидеть, что происходит с сообщением.

jacobmovingfwd 09.08.2018 19:45
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
2
5
843
1

Ответы 1

Похоже, проблема была не в моем коде или конфигурации, а в IP-адресе, который использует мой SMTP-сервер. Мой IP занесен в черный список, и это блокирует мою электронную почту. Это может произойти, если вы используете бесплатный тариф (общий IP): https://sendgrid.com/docs/Classroom/Deliver/Undeliverable_Email/what_do_i_do_if_im_blacklisted.html

Другие вопросы по теме