使用VB代码发送电子邮件

时间:2012-09-25 09:42:07

标签: asp.net vb.net email webforms smtp

不确定其他地方是否有人问过这个问题......

对于我正在处理的网站项目,我创建了一个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("", "")

我真的不知道该怎么办。请帮助这个新手。任何回应都表示赞赏。

顺便说一句,我测试时出现的错误信息出现在一个消息框中:“发送邮件失败。”

2 个答案:

答案 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)