如何在.net中设置smtp凭证
本文关键字:设置 smtp 凭证 net | 更新日期: 2023-09-27 18:11:26
我有一个联系我们的页面,用户填写内容和内容发送到电子邮件,如info@mywebsitename.com。在。net中,我们为SMTP定义凭据:
var body = c.Subject.ToString() + " from: " + c.Name + " " + c.Email + "'n'n" + c.Body;
var mailMessage = new MailMessage(c.Email, "info@mysitename.com", c.Subject.ToString(), body);
var mailAddr = new MailAddress(c.Email);
var smtpClient = new SmtpClient();
smtpClient.Host = "mail.mysitename.com";
**smtpClient.Credentials = new NetworkCredential("info@mysitename.com", "Test123");**
smtpClient.send();
any works well.
但如果用户更改info@mywebsitename.com的密码,则此凭据无效。用户有权访问和更改密码是一项人权!因此,如何拥有有效的凭证,客户可以发送电子邮件到info和网站所有者可以回复他们,可以更改密码。
我知道可以在web.config中设置。有没有办法动态设置密码。
你想要这样的东西
<system.net>
<mailSettings>
<smtp from="email@yourdomain.com" deliveryMethod="Network">
<network defaultCredentials="false" host="yourdomain" password="password" userName="username"/>
</smtp>
</mailSettings>
</system.net>
我认为你必须将'SmtpClient'的属性'UseDefaultCredentials'设置为false。根据你的电子邮件服务器,你最终必须将"EnableSsl"设置为true。下面是我用来成功连接Gmail的代码示例:
SmtpClient smtp = new SmtpClient("smtp.googlemail.com");
smtp.UseDefaultCredentials = false;
smtp.Credentials = new NetworkCredential("myaccountname@gmail.com", "mypassword");
smtp.EnableSsl = true;