Электронная почта не работает, не удается получить электронную почту для Yahoo ID электронной почты

Я застрял и не могу получить электронное письмо от идентификатора Yahoo (если идентификатор электронной почты отправителя Yahoo). Код работает нормально, не выдавая мне никакой ошибки, и я получаю письмо от m gmail id. Я использую localhost (не на локальной машине на живом сервере). Сервер хостинга: smtp.snapgrid.com также использовал аутентификацию, включил ssl, используя соответствующий порт для ssl. на snapgrid я проверяю, так что я получил, почта от Yahoo заблокирована, и сообщение,

сообщение:

Type: blocked
Reason: 550 5.7.1 Unauthenticated email from yahoo.com is not accepted due to domain's    
DMARC policy. Please contact administrator of yahoo.com domain if this was a legitimate 
mail. Please visit http://support.google.com/mail/answer/2451690 to learn about DMARC 
initiative.

пожалуйста помоги...

код, который я использовал для отправки (работает нормально, просто давая идею):

Способ 1:

     SmtpClient objSMTPClient = new SmtpClient();
            objSMTPClient.Host = ConfigurationManager.AppSettings["strSMTPServer"];
            string BODY_FORMAT = ConfigurationManager.AppSettings["EmailBodyContentFormat"];
            MailMessage objMailMessage = new MailMessage(from.Trim(), to.Trim(),   subject.Trim(), body.Trim());
            objSMTPClient.UseDefaultCredentials = false;
            if (BODY_FORMAT.ToUpper() == "HTML")
                objMailMessage.IsBodyHtml = true;

            else if (BODY_FORMAT.ToUpper() == "TEXT")
            {
                body = StripTags(body);
                objMailMessage.IsBodyHtml = false;

                objMailMessage.Body = body.ToString().Trim();
            }
            else
                return false;
            objSMTPClient.Send(objMailMessage);
            return true;

Способ 2:

            SmtpClient oMail = new SmtpClient();
            MailMessage msg = new MailMessage();
            MailAddress Madd = new MailAddress(from, "sunil");
            oMail.Host = "smtp.gmail.com";
            oMail.Port = 587;
            oMail.EnableSsl = true;
            oMail.DeliveryMethod = System.Net.Mail.SmtpDeliveryMethod.Network;
            oMail.Credentials = new NetworkCredential("sunil123@mydomain.com", "******");
            oMail.Timeout = 20000;
            msg.From = Madd;
            msg.Body = body.ToString();
            msg.To.Add(to);
            msg.Subject = subject;
            msg.IsBodyHtml = true;

            oMail.Send(msg);


            return true;

оба работают без ошибок, работают без ошибок....

1 ответ

Если вы отправляете через сервер, принадлежащий кому-то, например, Yahoo, Google или Office365, они ожидают, что имя отправителя учетной записи будет совпадать с тем, которое вы отправляете, используя адрес от.

Например, это будет работать на вашем локальном SMTP-сервере:

Message.From = new MailAddress("GrandMasterFlush@domain.com"); 

Однако, чтобы получить его для отправки через кого-то вроде Yahoo, вам потребуется отправить его следующим образом:

Message.From = new MailAddress("GrandMasterFlush@domain.com", "Grandmaster Flush"); 

Если имя отправителя не совпадает с именем учетной записи, электронное письмо не будет отправлено.

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