Я использую sendgrid для отправки подтверждающего электронного письма пользователям, которые создают новую учетную запись, при тестировании этого путем отправки электронного письма самому себе оно попадает в папку со спамом с сообщением «Отправитель не аутентифицировал это сообщение». Как я могу это исправить? Я использую метод cURL.
код:
$token = $this->token;
$username = htmlspecialchars($this->username);
// send an email to the user
$email = new \SendGrid\Mail\Mail();
$email->setFrom("[email protected]", "John Doe");
$email->setSubject("Verifictation email");
$email->addTo($this->email, $this->username);
$email->addContent("text/plain", "Hi $username! Please activate your email. Here is the activation link http://localhost/php/eindwerk/verification.php?token=$token");
$email->addContent(
"text/html", "Hi $username! Please activate your email. <strong>Here is the activation link:</strong> http://localhost/php/eindwerk/verification.php?token=$token"
);
$sendgrid = new \SendGrid(getenv('SENDGRID_API_KEY'));
try {
$response = $sendgrid->send($email);
} catch (Exception $e) {
echo 'Caught exception: '. $e->getMessage() ."\n";
}






Вы не можете исправить это в клиенте. Проблема в том, как настроена учетная запись в SendGrid. Если у вас нет доступа администратора к учетной записи sendgrid, вам нужно найти кого-то, у кого он есть.
После входа в учетную запись sendgrid в качестве администратора учетной записи откройте «Настройки» на левой панели навигации, затем выберите «Аутентификация отправителя»:
Оттуда вы можете аутентифицировать исходный домен (используя SPF и/или DMARC) и/или аутентифицировать отдельные учетные записи отправки: