如何在asp.net中使用smtp发送邮件

mut*_*thu 5 c# asp.net email smtp

i need solution for this error 
Run Code Online (Sandbox Code Playgroud)

我运行的那个时候发生了一些错误:发送电子邮件失败.SMTP服务器需要安全连接或客户端未经过身份验证.服务器响应为:5.7.0必须首先发出STARTTLS命令.i1sm8651517pbj.70

using System;
    using System.Configuration;
    using System.Web;
    using System.Web.Security;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Web.UI.HtmlControls;
    using System.Net.Mail;

    public partial class _Default : System.Web.UI.Page 
    {
        #region  "Send email"
        protected void btnSendmail_Click(object sender, EventArgs e)
        {
            // System.Web.Mail.SmtpMail.SmtpServer is obsolete in 2.0
            // System.Net.Mail.SmtpClient is the alternate class for this in 2.0
            SmtpClient smtpClient = new SmtpClient();
            MailMessage message = new MailMessage();

            try
            {
                MailAddress fromAddress = new MailAddress(txtEmail.Text, txtName.Text);

                // You can specify the host name or ipaddress of your server
                // Default in IIS will be localhost 
                smtpClient.Host = "smtp.gmail.com";

                //Default port will be 25
                smtpClient.Port = 587;

                //From address will be given as a MailAddress Object
                message.From = fromAddress;

                // To address collection of MailAddress
                message.To.Add("muthu17green@gmail.com");
                message.Subject = "Feedback";

                // CC and BCC optional
                // MailAddressCollection class is used to send the email to various users
                // You can specify Address as new MailAddress("admin1@yoursite.com")
                message.CC.Add("muthu17green@gmail.com");
                message.CC.Add("muthu17green@gmail.com");

                // You can specify Address directly as string
                message.Bcc.Add(new MailAddress("muthu17green@gmail.com"));
                message.Bcc.Add(new MailAddress("muthu17green@gmail.com"));

                //Body can be Html or text format
                //Specify true if it  is html message
                message.IsBodyHtml = false;

                // Message body content
                message.Body = txtMessage.Text;

                // Send SMTP mail
                smtpClient.Send(message);

                lblStatus.Text = "Email successfully sent.";
            }
            catch (Exception ex)
            {
                lblStatus.Text = "Send Email Failed.<br>" + ex.Message;
            }
        }
        #endregion

        #region "Reset"
        protected void btnReset_Click(object sender, EventArgs e)
        {
            txtName.Text = "";
            txtMessage.Text = "";
            txtEmail.Text = "";
        }
        #endregion
    }
Run Code Online (Sandbox Code Playgroud)

小智 3

您需要设置SmtpClient.Credentials属性:

smtpClient.Credentials = new NetworkCredentials("yourUserName", "yourPassword");
Run Code Online (Sandbox Code Playgroud)

这是用于验证以发送消息的内容。您可能还需要确保启用 SSL:

smtpClient.EnableSsl = true;
Run Code Online (Sandbox Code Playgroud)

SmtpClient.Credentials 属性 MSDN 参考