使用C#发送邮件而无需密码 - 发送失败错误

时间:2014-03-12 13:05:47

标签: c# asp.net email smtp

我正在尝试在C#中实现邮件发送功能, 我尝试使用gmail设置并且工作正常。 但我的要求是没有密码用于发送邮件的邮件ID,我的设置是

MailMessage mailMessage = new MailMessage("abcd@abcd.com", "pqrs@pqrs.com");

mailMessage.Subject = "Welcome";
mailMessage.Body = "---- Mail Body ---";
mailMessage.IsBodyHtml = true;
SmtpClient smtp = new SmtpClient();
smtp.Host = "000.000.000.000"; // we need to set a particular IP here
smtp.EnableSsl = true;

System.Net.NetworkCredential NetworkCred = new System.Net.NetworkCredential();
NetworkCred.UserName = "abcd@abcd.com";
NetworkCred.Password = "";
smtp.UseDefaultCredentials = true;
smtp.Credentials = NetworkCred;
smtp.Port = "25";
smtp.Send(mailMessage);

发出错误'发送邮件失败'。 根据要求,我们没有密码到邮件ID,SMTP端口是IP 第一次面对这种情况,并搜索了很多,但无法找到解决方案

请帮忙

1 个答案:

答案 0 :(得分:0)

我认为你无法形成一方要求启用SSL(因为它从谷歌设置中留下) 而另一方面不发送电子邮件,空.string仍然是一个值。 更好的远程属性。 试试这个

            MailAddress fromAddress = new MailAddress(ConfigurationManager.AppSettings["mailFrom"]);
            MailAddress toAddress = new MailAddress(email);
            string host = ConfigurationManager.AppSettings["smtpHost"];
            int port = Int32.Parse(ConfigurationManager.AppSettings["smtpPort"]);
            SmtpClient smtp = new SmtpClient(host, port)
            {
                DeliveryMethod = SmtpDeliveryMethod.Network,
                UseDefaultCredentials = false,
                EnableSsl = true,
                Credentials = new NetworkCredential(fromAddress.Address, ConfigurationManager.AppSettings["mailPassword"])

            };

确定更新了一些可行的方法 - 考虑到在这台服务器上我们也不关心真正的密码 - 就像你的情况一样,这意味着可能冒充了服务器。 还有一个提示:我在网络上遇到了一个问题,Active directovry限制策略不允许本地发送电子邮件,以避免蠕虫传播