【问题标题】:The parameter 'address' cannot be an empty string. Parameter name: address参数“地址”不能为空字符串。参数名称:地址
【发布时间】:2013-09-05 01:43:08
【问题描述】:

我知道这个问题以前出现过,但是答案并没有直接回答我的问题,这几天我也在网上搜索过。

问题是,我有一个发送到电子邮件的asp.net VB表单。但是,它出现错误“参数'地址'不能是空字符串。参数名称:地址” 当我点击提交时。但奇怪的是,它实际上仍然发送了包含所有相关信息的电子邮件。

任何人对为什么它给出错误但仍然发送有任何想法? 我觉得这很简单,但它让我很头疼!如果您需要其他代码 sn-ps,请告诉我。

代码背后:

Imports System.IO
Imports System.Net
Imports System.Net.Mail

Partial Class _default
Inherits System.Web.UI.Page

Protected Sub submitButton_Click(ByVal sender As Object, ByVal e As EventArgs) Handles submitButton.Click

        'send new confirmation email
    Try

        'create the email message
        Dim EmailMsg As New MailMessage()

        'set the address and subject
        EmailMsg.From = New MailAddress(emailTextBox.Text.ToString)
        EmailMsg.To.Add("myemailaddress")
        EmailMsg.Subject = "Website enquiry from " + firstnameTextBox.Text.ToString

        'set the content
        EmailMsg.Body = "First Name: " + firstnameTextBox.Text.ToString + "<br>" +
                        "Last Name: " + lastnameTextBox.Text.ToString + "<br>" +
                        "Reply to: " + emailTextBox.Text.ToString + "<br>" +
                        "Ph No.: " + phoneTextBox.Text.ToString + "<br>" +
                        "Dropdown value:" + DropDownList1.SelectedValue + "<br>" +
                        "Website Address: " + webAddressTextBox.Text.ToString + "<br>" +
                        "Other option: " + otherTextBox.Text.ToString

        EmailMsg.IsBodyHtml = True

        'send the message
        Dim smtp As New SmtpClient()
        smtp.Send(EmailMsg) 'uses web.config settings

        'if successful clear form and show success message
        firstnameTextBox.Text = String.Empty
        lastnameTextBox.Text = String.Empty
        emailTextBox.Text = String.Empty
        phoneTextBox.Text = String.Empty
        DropDownList1.SelectedValue = Val("0")
        webAddressTextBox.Text = String.Empty
        otherTextBox.Text = String.Empty

        lblMessage.Text = "Message sent successfully!"

    Catch ex As Exception
        'show error message if unsuccessful
        lblMessage.Text = ex.Message

    End Try

End Sub
End Class

Web.config:

<configuration>
<system.net>
<mailSettings>
  <smtp>
    <network host="server" 
             port="25"
             userName="myemailaddress"
             password="mypassword"/>
  </smtp>
</mailSettings>

提前致谢

【问题讨论】:

    标签: asp.net vb.net forms email


    【解决方案1】:

    尝试使用

    EmailMsg.To.Add(New MailAddress("myemailaddress"))
    

    我认为您需要将 MailAddress 对象添加到您的收件人列表中。我在我的代码中做了,我没有收到任何错误。

    【讨论】:

    • 感谢您的回复,我已更改代码以反映您的建议,但它仍然给出错误消息并发送消息
    • 您是否调试过代码来检查emailTextBox.Text.ToString 的值?如果这无效,则可能是发件人地址导致了问题(并且也许可以解释为什么电子邮件仍然到达目的地,因为收件人地址不是问题)。
    【解决方案2】:

    .net 本地 DEV 和生产服务器不匹配

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-12-16
      • 1970-01-01
      • 2019-11-06
      • 2021-07-26
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多