Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/email/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何知道何时收到电子邮件_C#_Email - Fatal编程技术网

C# 如何知道何时收到电子邮件

C# 如何知道何时收到电子邮件,c#,email,C#,Email,我正在使用C#,我需要知道destinatary的收件箱文件夹何时收到我的程序发送的电子邮件。 这可能吗?您可以尝试此代码 SmtpClient client = new SmtpClient(); client.Port = 587; client.Host = "smtp.gmail.com"; client.EnableSsl = true; client.Timeout = 10000;

我正在使用C#,我需要知道destinatary的收件箱文件夹何时收到我的程序发送的电子邮件。 这可能吗?

您可以尝试此代码

SmtpClient client = new SmtpClient();
            client.Port = 587;
            client.Host = "smtp.gmail.com";
            client.EnableSsl = true;
            client.Timeout = 10000;
            client.DeliveryMethod = SmtpDeliveryMethod.Network;
            client.UseDefaultCredentials = false;
            client.Credentials = new System.Net.NetworkCredential("Your Email Address", "Your Emaill Password");

            MailMessage mm = new MailMessage("Sender Email", "Reciver Email", "subject", "body");
            mm.BodyEncoding = UTF8Encoding.UTF8;
            mm.DeliveryNotificationOptions = DeliveryNotificationOptions.OnFailure;

            client.Send(mm);

据我所知,我们无法验证邮件是否已到达收件人的收件箱。在max,我们可以验证发送的邮件是否已到达收件人的电子邮件服务器。一旦电子邮件离开你,它就不再由你控制了。考虑一下,我从雅虎发送邮件到Gmail。在max,我可以验证邮件是否已发送到gmail服务器,但用户的收件箱没有

对于短信息:以twilio服务为例,当您使用twilio服务向沃达丰发送短信息时,如果运营商发送回复,说明消息已发送(沃达丰服务器),twilio将向沃达丰(运营商)发送短信息然后,只有twilio可以将该状态发回给您,但有时即使是运营商也不会将“已发送”状态发送给twilio,因此这并不保证


总之,你不能。你无法确认邮件是否已到达某个人的收件箱。

通常情况下,除非你控制邮箱所在的服务器。为什么不试试像mail gun这样有API发送电子邮件的服务呢?根据你的电子邮件流量,你可以使用免费或付费服务。至少他们有日志和返回类型(成功/失败),以便您可以检查