System.Net.Mail 显示名称失败
System.Net.Mail Display Name Fails
我目前正在按以下方式使用 System.Net.Mail:
Message.BodyEncoding = Encoding.UTF8
Message.From = New System.Net.Mail.MailAddress(EMail)
Message.IsBodyHtml = True
Message.Subject = theSubject
Message.Body = theBody
Dim client As New System.Net.Mail.SmtpClient()
client.UseDefaultCredentials = False
client.Credentials = New System.Net.NetworkCredential(EMail, EMailPwd)
client.EnableSsl = True
client.Host = "smtp.gmail.com"
client.Port = 587
这样发送就可以了。但是在尝试指定显示名称时:
Message.From = New System.Net.Mail.MailAddress(EMail, firstName & " " & lastName)
我从来没有收到消息,也没有抛出异常。我也试过这样格式化:
Message.From = New System.Net.Mail.MailAddress(fullName & " <" & EMail & ">")
有什么原因导致它一直失败而没有给出任何类型的错误?也许是 Gmail 的 SMTP 服务器限制阻止了它?
搞砸之后,我能够通过为发件人地址指定 unicode 编码类型来发送它:
Message.From = New System.Net.Mail.MailAddress(EMail, FirstName & " " & LastName, Encoding.Unicode)
我目前正在按以下方式使用 System.Net.Mail:
Message.BodyEncoding = Encoding.UTF8
Message.From = New System.Net.Mail.MailAddress(EMail)
Message.IsBodyHtml = True
Message.Subject = theSubject
Message.Body = theBody
Dim client As New System.Net.Mail.SmtpClient()
client.UseDefaultCredentials = False
client.Credentials = New System.Net.NetworkCredential(EMail, EMailPwd)
client.EnableSsl = True
client.Host = "smtp.gmail.com"
client.Port = 587
这样发送就可以了。但是在尝试指定显示名称时:
Message.From = New System.Net.Mail.MailAddress(EMail, firstName & " " & lastName)
我从来没有收到消息,也没有抛出异常。我也试过这样格式化:
Message.From = New System.Net.Mail.MailAddress(fullName & " <" & EMail & ">")
有什么原因导致它一直失败而没有给出任何类型的错误?也许是 Gmail 的 SMTP 服务器限制阻止了它?
搞砸之后,我能够通过为发件人地址指定 unicode 编码类型来发送它:
Message.From = New System.Net.Mail.MailAddress(EMail, FirstName & " " & LastName, Encoding.Unicode)