在头部和身体之间,我有:
<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">
但是没有发送电子邮件,为什么不发送?
答案 0 :(得分:2)
因为您需要触发sendmail方法。您的代码中没有任何内容可以调用它。
您可以在标记上设置一个按钮,在单击时调用sendEmail
。
例如:
<asp:button id="btnSend" OnClick="sendmail" runat="server" Text="Send" />
答案 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);