Электронная почта, отправленная с веб-сервера, приводит к тому, что gmail рассматривается как фишинг. Как от этого избавиться?
Я отправляю электронное письмо для активации учетной записи из моего приложения.net.
Я установил адрес от "xyz.support@gmail.com" и от имени "xyz", где xyz - это имя домена, т.е. нашего веб-сайта.
Это не было проблемой, когда мы использовали SMTP-сервер Google, поскольку я предоставлял учетные данные Google во время отправки. Но теперь я использую SMTP своего веб-сервера для отправки электронной почты.
Когда я просматриваю письмо активации в gmail, я получаю это:
Это сообщение, возможно, не было отправлено: xyz.support@gmail.com Подробнее Подробнее Фишинг
Есть ли способ избавиться от этого, чтобы gmail и другие клиенты не показывали это сообщение?
Вот код:
var smtpClient = new SmtpClient();
var message = new MailMessage();
smtpClient.Host = _config.SMTPServer;
message.From = new MailAddress("xyz.support@gmail.com", "xyz");
message.To.Add("newuser@gmail.com");
message.IsBodyHtml = true;
message.Subject = "Test subject";
message.Body = "Test Body";
smtpClient.Send(message);
Спасибо
2 ответа
Домен адреса FROM должен совпадать с доменом SMTP-сервера, отправляющего электронную почту, в противном случае ваше сообщение рассматривается как спам.
Это объясняет, почему вы избегаете "ошибки", отправляя через SMTP-сервер Google.
Предложение IrishChieftain об использовании SPF мне помогло, поэтому вот краткое изложение шагов, которые я сделал:
1.) Во-первых, я также получил сообщения электронной почты в почтовом ящике GMail, которые я отправил со своего сервера и получил предупреждение "Возможно, это сообщение не было отправлено...".
2.) Затем я посмотрел источник электронной почты внутри GMail (щелкните стрелку рядом с сообщением и выберите "Показать оригинал"). Отрывок оттуда был:
Получено-SPF: сбой (google.com: домен меня @mydomain.com не обозначает 211.113.37.19 в качестве разрешенного отправителя) client-ip=211.113.37.19;
Поэтому Google прямо сказал мне, что делать: добавьте некоторые записи SPF в DNS моего домена "mydomain.com", чтобы избавиться от этого предупреждения.
3.) Поэтому я вошел в панель управления моего провайдера DNS и добавил две записи TXT, что-то вроде этого:
*.mydomain.com. 180 v=spf1 +a +mx ip4:211.113.37.19 -all
mydomain.com. 180 v=spf1 +a +mx ip4:211.113.37.19 -all
Обратите внимание, что я ввел каждую строку в трех отдельных полях:
- Одно поле для
*.mydomain.com.
- Одно поле для
180
(TTL, 3 минуты в моем примере) - Одно поле для
v=spf1 +a +mx ip4:211.113.37.19 -all
4.) После этого я немного подождал и попытался отправить заново. Это удалось. Google теперь показывает в оригинале:
Received-SPF: pass (google.com: домен Received-SPF: pass (google.com: домен me@mydomain.com обозначает 211.113.37.19 в качестве разрешенного отправителя) client-ip=211.113.37.19;
Обратите внимание, что я выбираю версию SPF, поскольку почтовый сервер находится на другом компьютере, чем веб-сервер, поэтому я не смог выполнить другое решение, как писал Мулмот.
Существует также мастер SPF от Microsoft для правильной генерации записей SPF. Кроме того, вот еще один генератор SPF.