在asp.net发送电子邮件

时间:2011-11-10 13:59:27

标签: c# asp.net sendmail

在头部和身体之间,我有:

<script language="C#" runat="server"> 

private void sendmail(Object sender, EventArgs e)
        {

        try
        {

            MailMessage mailObj = new MailMessage();
            mailObj.From = "no-reply@domain.be";
            mailObj.To = "nick@domain.be";
            mailObj.Subject = "Email via site ";
            mailObj.Body = "Dit is een email verstuurd via ASP.net .";
            //mailObj.BodyFormat = MailFormat.Text;
            SmtpMail.SmtpServer = "smtp.one.com";
            SmtpMail.Send(mailObj);
            Response.Write("Email werd succesvol vestuurd");
        }
        catch (Exception x)
        {
            Response.Write("Email werd niet verstuurd: " + x.Message);
        }
    } 
    </script> 

在我的身体里我有

<form id="Form1" method="post" runat="server"> 

 

但是没有发送电子邮件,为什么不发送?

3 个答案:

答案 0 :(得分:2)

因为您需要触发sendmail方法。您的代码中没有任何内容可以调用它。

您可以在标记上设置一个按钮,在单击时调用sendEmail

例如:

<asp:button id="btnSend" OnClick="sendmail" runat="server" Text="Send" />

此外,SmtpMail is obsolete。使用SmtpClient

答案 1 :(得分:0)

您的SMTP服务器似乎没有任何身份验证设置。

您可能想要考虑更新的'SmtpClient'类。详细信息如下:http://msdn.microsoft.com/en-us/library/swas0fwc.aspx

答案 2 :(得分:0)

我几乎会向您保证,smtp服务器不存在,或者您没有传递正确的凭据。如果您有GMail帐户,请尝试使用以下代码,该代码将使用GMail的SMTP服务器进行身份验证和邮件。一旦工作正常,请继续工作,直到您正确地对自己进行身份验证。

System.Net.Mail.SmtpClient client = new System.Net.Mail.SmtpClient();
client.Timeout = 3000;
client.DeliveryMethod = System.Net.Mail.SmtpDeliveryMethod.Network;
client.Host = "smtp.gmail.com";
client.Port = 587;

System.Net.NetworkCredential myCreds = new System.Net.NetworkCredential(
     "Your@emailhere.com"
     "YourPasswordHere"
                "");


client.Credentials = myCreds;
client.EnableSsl = true;

client.Send(message);