我正在尝试使用Yahoo或Gmail发送电子邮件。在此之前,我想检查我用来发送邮件的电子邮件地址的用户名和密码组合是否正常,然后发送电子邮件。
我怎样才能在Asp.net/C#中实现这样的目标?
有没有办法找到发送电子邮件的状态? (交付还是失败?)
答案 0 :(得分:1)
可以接收所谓的NDR(Non-Delivery Report/Receipt),但由于这是一封发送回指定退回地址的电子邮件,因此您必须构建一个应用程序,将这些报告作为后台进程或类似。无法保证您将获得NDR。
在发送之前,我真的没有看到检查用户名/密码的重点。您无论如何都会添加错误处理,因此它会失败或成功。
答案 1 :(得分:1)
SmtpClient不提供测试凭据的功能,例如只是登录而不发送。因此,如前所述,.Net板载方式将尝试/捕获您的发送尝试。
如果您坚持首先检查凭据,则必须使用.Net.Sockets.TcpClient自行实施SMTP协议或部分SMTP协议。这样您就可以在不发送任何内容的情况下登录SMTP。