【发布时间】:2011-05-07 11:49:18
【问题描述】:
我允许用户管理存储在数据库中的分发列表。用户只能输入@mydomain.com 的电子邮件。然后,基于 Web 的应用程序获取分发列表并发送电子邮件。我想在从应用程序发送电子邮件之前验证电子邮件是否有效。
要发送电子邮件,我使用此代码:
Dim SendTo As String = "ThisIsNotARealEmailAddress@mydomain.com"
Dim SentFrom As String = "me@mydomain.com"
Dim MessageBody As String = "blah blah blah"
Dim MessageSubject As String = "This is the subject"
Dim mm As New MailMessage(SentFrom, SendTo)
mm.Subject = MessageSubject
mm.IsBodyHtml = False
mm.Priority = MailPriority.High
mm.Body = MessageBody
Dim smtp As New SmtpClient()
smtp.Send(mm)
如果 SendTo 不是有效的电子邮件地址,服务器将返回此错误:
Mailbox unavailable. The server response was: 5.1.1 <ThisIsNotARealEmailAddress@mydomain.com>... User unknown
当电子邮件地址添加到数据库时,是否有验证电子邮件的方法,而不是发送电子邮件时的try catch 块?
【问题讨论】:
-
您可以在添加电子邮件地址时对 AD 域进行查询。那里应该有很多例子。但是,除非您的管理员也更新您的数据库,否则在更改或销毁电子邮件地址时您仍然会遇到错误。
-
@Bill ~ 我没有考虑电子邮件地址何时更改或被删除。我会尽我所能在提交时从 AD 获得一封有效的电子邮件,然后在发送时发现错误。谢谢
标签: vb.net smtp exchange-server email-validation