我正在尝试在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 第一次面对这种情况,并搜索了很多,但无法找到解决方案
请帮忙
答案 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限制策略不允许本地发送电子邮件,以避免蠕虫传播