电子邮件无法正常工作,无法接收yahoo电子邮件ID的电子邮件
我被卡住了,无法接收来自yahoo id的电子邮件(如果发件人的电子邮件ID是雅虎的)。 代码工作正常,没有给我任何错误,我收到来自gmail id的电子邮件。 我正在使用localhost(不在实时服务器上的本地机器上)。 托管服务器:smtp.snapgrid.com也使用身份validation,启用ssl,使用适当的端口为ssl。 在snapgrid我做检查所以我得到的是来自雅虎的邮件被阻止,消息是,
信息 :
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;
两个都没有错误运行没有错误….
如果您通过属于Yahoo,Google或Office365之类的服务器发送邮件,则他们希望帐户的发件人姓名与您在发件人地址中发送的邮件名称相匹配。
例如,这可以在本地SMTP服务器上运行:
Message.From = new MailAddress("GrandMasterFlush@domain.com");
但是,要让它通过像雅虎这样的人发送,需要你这样发送:
Message.From = new MailAddress("GrandMasterFlush@domain.com", "Grandmaster Flush");
如果提供的发件人姓名与帐户名称不完全匹配,则不会发送电子邮件。