1

我的网站上有一个email form效果很好。我唯一想做的就是添加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."; 
            }

如何usings在此代码上使用?当我上传我的网站时使用填写我的电子邮件地址和密码是否安全,或者我应该使用其他方法?

提前致谢!

编辑:

我将代码更改为以下内容:

  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."; 
            }
4

5 回答 5

4

切勿将身份验证信息放入您的代码中。把它放在你的 web.config 中,并在你需要的地方引用它。如果您更改密码,这也为您省去了在使用它的任何地方寻找的麻烦。

于 2013-03-11T20:51:50.013 回答
1

我建议使用 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>

代码示例:

Public Sub SendEmail([to] As String, subject As String, body As String)
    Dim mailMessage = New System.Net.Mail.MailMessage()
    mailMessage.[To].Add([to])
    mailMessage.Subject = subject
    mailMessage.Body = body

    Dim smtpClient = New SmtpClient()
    smtpClient.EnableSsl = True
    smtpClient.Send(mailMessage)
End Sub
于 2013-03-11T20:53:51.497 回答
0

http://msdn.microsoft.com/en-us/library/yh598w02(v=vs.100).aspx

using (MailMessage msg = new MailMessage())
{
    //Your Code
}
于 2013-03-11T20:52:45.903 回答
0

您可以将 using 用于 MailMessage 和 SMTP 客户端对象

           //create message
           using (SmtpClient smtp = new SmtpClient(""))
           using( MailMessage msg = new MailMessage())
           {

                // Your code

           }
于 2013-03-11T20:55:39.257 回答
0
    using(SmtpClient smtp = new SmtpClient()){
        //smtp options here
        using(MailMessage msg = new MailMessage()){
            //mail options here
            smtp.Send(msg);
        }
    }
于 2013-03-11T20:59:07.407 回答