C# 使用asp发送电子邮件
我在我的网站上有一个电子邮件表单,它非常有效。我唯一想做的就是添加usings以获得更好的编码,最好的方法是什么?我使用的代码如下所示:C# 使用asp发送电子邮件,c#,asp.net,visual-studio,email,C#,Asp.net,Visual Studio,Email,我在我的网站上有一个电子邮件表单,它非常有效。我唯一想做的就是添加usings以获得更好的编码,最好的方法是什么?我使用的代码如下所示: try { //create message MailMessage msg = new MailMessage(); msg.To.Add(txtTo.Text); msg.From = new MailAddres
try
{
//create message
MailMessage msg = new MailMessage();
msg.To.Add(txtTo.Text);
msg.From = new MailAddress(txtFrom.Text);
msg.Subject = string.Format("Van: " + txtName.Text + " | Email: " + txtFrom.Text + " | Onderwerp: " + txtSubject.Text);
msg.Body = txtBericht.Text;
SmtpClient smtp = new SmtpClient("");
smtp.Host = "smtp.live.com";
smtp.Port = 587;
smtp.EnableSsl = true;
smtp.Credentials = new NetworkCredential("emailaddress", "pass");
smtp.Send(msg);
ClearTextboxes();
lblError.ForeColor = Color.Green;
lblError.Text = "Het verzenden van uw e-mail is gelukt!";
}
catch
{
lblError.ForeColor = Color.Red;
lblError.Text = "Er ging iets mis met het versturen van de email.";
}
try
{
//create message
using (MailMessage msg = new MailMessage())
{
//create message
MailMessage msg = new MailMessage();
msg.To.Add(txtTo.Text);
msg.From = new MailAddress(txtFrom.Text);
msg.Subject = string.Format("Van: " + txtName.Text + " | Email: " + txtFrom.Text + " | Onderwerp: " + txtSubject.Text);
msg.Body = txtBericht.Text;
using (SmtpClient smtp = new SmtpClient())
{
smtp.Host = "smtp.live.com";
smtp.Port = 587;
smtp.EnableSsl = true;
smtp.Credentials = new NetworkCredential("emailadress", "pass");
smtp.Send(msg);
}
ClearTextboxes();
lblError.ForeColor = Color.Green;
lblError.Text = "Het verzenden van uw e-mail is gelukt!";
}
}
catch
{
lblError.ForeColor = Color.Red;
lblError.Text = "Er ging iets mis met het versturen van de email.";
}
如何在此代码上使用usings?
当我上传我的网站时,填写我的电子邮件地址和密码是安全的,还是应该使用其他方法
提前谢谢
编辑:
我将代码更改为以下内容:
try
{
//create message
MailMessage msg = new MailMessage();
msg.To.Add(txtTo.Text);
msg.From = new MailAddress(txtFrom.Text);
msg.Subject = string.Format("Van: " + txtName.Text + " | Email: " + txtFrom.Text + " | Onderwerp: " + txtSubject.Text);
msg.Body = txtBericht.Text;
SmtpClient smtp = new SmtpClient("");
smtp.Host = "smtp.live.com";
smtp.Port = 587;
smtp.EnableSsl = true;
smtp.Credentials = new NetworkCredential("emailaddress", "pass");
smtp.Send(msg);
ClearTextboxes();
lblError.ForeColor = Color.Green;
lblError.Text = "Het verzenden van uw e-mail is gelukt!";
}
catch
{
lblError.ForeColor = Color.Red;
lblError.Text = "Er ging iets mis met het versturen van de email.";
}
try
{
//create message
using (MailMessage msg = new MailMessage())
{
//create message
MailMessage msg = new MailMessage();
msg.To.Add(txtTo.Text);
msg.From = new MailAddress(txtFrom.Text);
msg.Subject = string.Format("Van: " + txtName.Text + " | Email: " + txtFrom.Text + " | Onderwerp: " + txtSubject.Text);
msg.Body = txtBericht.Text;
using (SmtpClient smtp = new SmtpClient())
{
smtp.Host = "smtp.live.com";
smtp.Port = 587;
smtp.EnableSsl = true;
smtp.Credentials = new NetworkCredential("emailadress", "pass");
smtp.Send(msg);
}
ClearTextboxes();
lblError.ForeColor = Color.Green;
lblError.Text = "Het verzenden van uw e-mail is gelukt!";
}
}
catch
{
lblError.ForeColor = Color.Red;
lblError.Text = "Er ging iets mis met het versturen van de email.";
}
永远不要在代码中放入身份验证信息。将它放在web.config中,并在需要的地方引用它。如果您更改密码,您还可以省去在任何地方查找密码的麻烦。切勿在代码中添加身份验证信息。将它放在web.config中,并在需要的地方引用它。如果你更改了密码,那么你就不用到处寻找你使用过的密码了
我建议使用web.config设置主机、用户名和密码。例如
<system.net>
<mailSettings>
<smtp deliveryMethod="Network" from="name@domain.com">
<network host="smtp.mail.com"
userName="name@domain.com"
password="blog.dotnetclr.com" port="25"/>
</smtp>
</mailSettings>
</system.net>
我建议使用web.config设置主机、用户名和密码。例如
<system.net>
<mailSettings>
<smtp deliveryMethod="Network" from="name@domain.com">
<network host="smtp.mail.com"
userName="name@domain.com"
password="blog.dotnetclr.com" port="25"/>
</smtp>
</mailSettings>
</system.net>
可以对MailMessage和SMTP客户端对象使用
//create message
using (SmtpClient smtp = new SmtpClient(""))
using( MailMessage msg = new MailMessage())
{
// Your code
}
可以对MailMessage和SMTP客户端对象使用
//create message
using (SmtpClient smtp = new SmtpClient(""))
using( MailMessage msg = new MailMessage())
{
// Your code
}
你想干什么?处理SmtpClient?你想做什么?处置SmtpClient?除非我完全误解了这一点,否则这实际上并不能回答问题。事实上,它回答了一半,而@Nikita的答案也回答了我问题的一半。Richard,如果我使用Windows身份验证并且只想指定主机是否正确,将smtp设置放入.config是否更好?它只在一个页面中使用一次。我将任何身份验证信息,或将来可能更改的与应用程序功能相关的任何信息都放在web.config中。这是一个易于管理和更改信息的地方。在代码中添加任何识别信息可能会在将来引发问题…除非我完全误解了这一点,否则这实际上并不能回答问题。事实上它回答了一半,而@Nikita的答案也回答了我问题的一半。Richard,如果我使用Windows身份验证,并且只考虑我指定的主机是否为,那么将smtp设置放入.config会更好吗?它只在一个页面中使用一次。我将任何身份验证信息,或将来可能更改的与应用程序功能相关的任何信息都放在web.config中。这是一个易于管理和更改信息的地方。将任何标识信息放入代码本身可能会在将来导致问题……我是否应该同时为这两种代码执行此操作,这是更好的编码方式?将邮件消息放入using语句的价值是什么?SmtpClient使用您想要处置的资源,但对MailMessage是否同样适用?我认为对SmtpClient使用“using”比对MailMessage使用“using”更明智,因为GC最终将进行清理,但我们正在尝试对两者进行确定性终结。。希望这是有意义的…我应该为两者都这样做吗,这是更好的编码吗?将邮件消息放入using语句的价值是什么?SmtpClient使用您想要处置的资源,但对MailMessage是否同样适用?我认为对SmtpClient使用“using”比对MailMessage使用“using”更明智,因为GC最终将进行清理,但我们正在尝试对两者进行确定性终结。。希望它有意义…web.config的第一个片段对我帮助很大,我今天投了很多票,所以我明天会投票给你我一天的第一个工作:web.config的第一个片段对我帮助很大,我今天投了很多票,所以我明天会投票给你我一天的第一个工作: