不确定其他地方是否有人问过这个问题......
对于我正在处理的网站项目,我创建了一个ASPX Web表单,该表单将在按钮单击时发送包含表单内容的电子邮件。我尝试了它,当我使用Yahoo SMTP服务器并使用我的个人Yahoo电子邮件地址(+指定用户名和密码)进行测试时,它工作正常。
但是,当我使用SMTP服务器收发网站的邮件时(在我在网站上创建了一个新的管理员电子邮件帐户之后),它将无效。
该网站已启动并正在运行,我可以通过该网站的管理员电子邮件帐户(通过雅虎)发送电子邮件,但不是在通过ASPX网络表单发送时。
以下是使用Yahoo SMTP服务器的代码,它运行正常:
SmtpServer.Credentials = New Net.NetworkCredential("username@yahoo.com", "password")
SmtpServer.Port = "25"
SmtpServer.Host = "smtp.mail.yahoo.com"
mail.From = New MailAddress("username@yahoo.com")
mail.To.Add("username@yahoo.com")
mail.Subject = "RE: Message Subject"
mail.Body = "Message goes here."
SmtpServer.Send(mail)
现在,以下是使用我网站的SMTP服务器的代码:
SmtpServer.Port = "25"
SmtpServer.Host = "127.0.0.1"
mail.From = New MailAddress("admin@awesomewebsite.org.au")
mail.To.Add("admin@awesomewebsite.org.au")
mail.Subject = "RE: Message Subject"
mail.Body = "Message goes here."
SmtpServer.Send(mail)
这些是托管网站的网络托管公司提供的正确端口和主机号码。他们还说不需要用户名和密码。我也尝试将其附加到代码的开头,但它仍然不起作用:
SmtpServer.Credentials = New Net.NetworkCredential()
甚至
SmtpServer.Credentials = New Net.NetworkCredential("", "")
我真的不知道该怎么办。请帮助这个新手。任何回应都表示赞赏。
顺便说一句,我测试时出现的错误信息出现在一个消息框中:“发送邮件失败。”
答案 0 :(得分:1)
您需要在您的网站上创建一个电子邮件帐户,并使用这些凭据发送邮件,就像您使用yahoo一样(这可以在您的网站管理门户网站上完成,但某些托管服务提供商会单独向您收取费用电子邮件服务)。此外,还应该给出正确的smtp服务器,这取决于您的托管服务提供商。您可以从托管服务提供商处获取该信息。 127.0.0.1无论如何都不会在这里工作。
答案 1 :(得分:0)
不要导入'System.Net.Mail'。 完成的代码如下所示:
Dim SmtpServer As New Net.Mail.SmtpClient
Dim mail As New Net.Mail.MailMessage
SmtpServer.Host = "198.154.99.8"
SmtpServer.UseDefaultCredentials = False
SmtpServer.Credentials = New System.Net.NetworkCredential("admin@awesomewebsite.org.au", "password")
mail.From = New Net.Mail.MailAddress("admin@awesomewebsite.org.au")
mail.To.Add("admin@awesomewebsite.org.au")
mail.Subject = "RE: Message Subject"
mail.Body = "Message goes here."
SmtpServer.Send(mail)