Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/284.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#从Gmail SMTP发送的邮件无法到达-不会引发异常_C#_.net_Email_Smtp_Gmail - Fatal编程技术网

是什么导致使用C#从Gmail SMTP发送的邮件无法到达-不会引发异常

是什么导致使用C#从Gmail SMTP发送的邮件无法到达-不会引发异常,c#,.net,email,smtp,gmail,C#,.net,Email,Smtp,Gmail,我正在尝试通过我的Google Apps电子邮件帐户发送邮件。这是在我自己的域上设置的,通过web界面和outlook都可以正常工作 但是,我尝试使用C#从网页发送电子邮件,没有例外,一切似乎都很顺利,但电子邮件似乎从未到达: MailMessage msg = new MailMessage("no-reply@xxxx.co.uk", "dan@xxxx.co.uk"); SmtpClient smtp = new SmtpClient("smtp.gmail.com", 587);

我正在尝试通过我的Google Apps电子邮件帐户发送邮件。这是在我自己的域上设置的,通过web界面和outlook都可以正常工作

但是,我尝试使用C#从网页发送电子邮件,没有例外,一切似乎都很顺利,但电子邮件似乎从未到达:

MailMessage msg = new MailMessage("no-reply@xxxx.co.uk", "dan@xxxx.co.uk");
    SmtpClient smtp = new SmtpClient("smtp.gmail.com", 587);
    smtp.DeliveryMethod = SmtpDeliveryMethod.Network;
    smtp.Credentials = new NetworkCredential("no-reply@xxxx.co.uk", "xxxxxxxxx");
    smtp.EnableSsl = true;
    msg.IsBodyHtml = true;
    msg.Body = body;

    smtp.Send(msg);
正文是我在代码前面生成的字符串。据我所知,如果实际连接到Gmail的SMTP服务器时出现问题,那么我会抛出一个异常

你知道是什么原因导致这不起作用吗?与其他人的例子相比,我能看到的唯一不同之处是,我将body设置为HTML,并且我是通过Google Apps帐户发送的,而不是通过@gmail.com帐户发送的

谷歌的应用程序本身都是完全配置好的,可以正常工作,我已经设置了很多次了,所以我知道这不太可能是个问题

我还尝试在端口25上发送,因为在配置Outlook以从Gmail帐户发送时,您会使用端口25

两者的结果相同,没有引发异常,但电子邮件从未到达。发送者和接收者的电子邮件都在我的域名上,使用Google Apps for Gmail

编辑:

我还应该提到,我已经使用这两个帐户登录,并且都在其设置中启用了IMAP和POP等

新发现

这是一个奇怪的

如果我从以下位置手动发送邮件:

no-reply@mydomain.com to dan@mydomain.com - Then it works

But if I send it through code this way...it doesn't work...
如果我通过代码发送以下内容,它确实有效:

no-reply@mydomain.com to me@gmail.com or me@ntlworld.com - This works through code!
然后我会认为这意味着一个问题dan@mydomain.com接收消息…但它会接收从我尝试过的任何google、hotmail或ntlworld电子邮件地址手动发送的任何消息


因此,要么谷歌应用程序帐户无法接收通过代码发送的电子邮件(不太可能),要么这里有其他原因

如果您的邮件出现问题,服务器可能会自动丢弃该邮件。 -尽管任何规范都另有规定

消息可能会在以太中丢失,尽管已“传递”

SMTP服务器可能正在应用严重筛选,并且可能还要求您的发件人和目标电子邮件地址“正确”匹配


我建议尝试使用其他SMTP主机进行检查。:)

当您设置Google应用程序时,即使MX记录在手动向/从其他帐户发送邮件时都正常工作,也可能会出现问题

答案是在设置MX记录后等待12-24小时,即使其他一切正常

如果你没有收到任何例外,那么对我来说,这是目前唯一的答案


现在一切正常。尽管我的DNS上的所有MX记录都是正确的,电子邮件似乎也在工作,但背景中仍有变化

没有,我应该在问题中提到,我已经检查过了,因为这是我最初认为的问题。由于没有引发异常,我不确定出了什么问题。它是否在帐户的“已发送”文件夹中?(我想他们会被放在那里…)是的,刚刚检查过,它已经出现在发送帐户的发送文件夹中。我在这两个帐户上都收到了很好的电子邮件,我已经测试过从hotmail帐户和其他各种帐户向接收帐户发送邮件,它们都正确地发送到收件箱。@Dan,关于您的smtp客户端,smtp主机和端口应该用于您所在的托管服务器。电子邮件今天早上在我的收件箱中。我今晚将尝试另一个测试提交,看看它是否立即通过。