检查电子邮件凭据是否存在

本文关键字:是否 存在 电子邮件 检查 | 更新日期: 2023-09-27 18:03:30

有十几个问题问smtp服务器工作像测试smtp服务器是通过c#运行,我可以测试SmtpClient之前调用client.Send()?它们通过向SMTP服务器发送命令来完成检查工作。他们从不将任何凭证用于测试目的。所以我想知道有没有一种方法可以检查这些登录名和密码在这个smtp服务器上有效而不发送邮件?

检查电子邮件凭据是否存在

当我在这个问题上工作时,我最关心的是找到一个解决方案,我不必发送电子邮件来检查凭据是否有效。因此,在尝试了网上提供的一堆解决方案之后,我想出了我自己可以接受的测试电子邮件凭据:

我使用MailKit来帮助我。

    public static bool ValidateCredentials(string username, string password, string server, int port, bool certificationValidation)
    {
        try
        {
            using (var client = new MailKit.Net.Smtp.SmtpClient())
            {
                try
                {
                    client.ServerCertificateValidationCallback = (s, c, h, e) => certificationValidation;
                    client.Connect(server, port, false);
                    client.Authenticate(username, password);
                    client.Disconnect(true);
                    return true;
                }
                catch (Exception ex)
                {
                    Console.WriteLine(string.Format("ValidateCredentials Exception: {0}", ex.Message));
                }
            }
        }
        catch (System.Exception ex)
        {
            Console.WriteLine(string.Format("ValidateCredentials Exception: {0}", ex.Message));
        }
        return false;
    }

SMTP不允许在不发送电子邮件的情况下登录。

请看下面的内容:

在发送邮件之前如何验证smtp凭据?