【问题标题】:c# send mail in gmail not receivedc#在gmail中发送邮件未收到
【发布时间】:2017-03-16 12:29:15
【问题描述】:

我在 gmail 中接收邮件时遇到问题!

我用 Outlook、yahoo、gmx 对其进行了测试,我完全从我的工具中收到了邮件,但在我的 gmail 中没有。有人有想法吗?

mtpClient clientxy = new SmtpClient("smtp.mydomain.com");
clientxy.Port = 25;
clientxy.EnableSsl = false;
clientxy.Timeout = 3600;
clientxy.DeliveryMethod = System.Net.Mail.SmtpDeliveryMethod.Network;
clientxy.UseDefaultCredentials = false;
NetworkCredential Credentials = new NetworkCredential("noreply@mydomain.com", "PWD");
clientxy.Credentials = Credentials;
MailMessage msg = new MailMessage("noreply@mydomain.com", text_Email.Text);
msg.BodyEncoding = UTF8Encoding.UTF8;
msg.Subject = "Subject";

string htmlBody;
msg.IsBodyHtml = true;
htmlBody = "<html>---html code";
msg.Body = htmlBody;

Attachment inline = new Attachment(@"file.xml");
inline.ContentDisposition.Inline = true;
msg.Attachments.Add(inline);
clientxy.Send(msg);

这里 php 代码这个工作

$mail = new PHPMailer();
$mail->isSMTP();
//$mail->SMTPDebug = 2;
$mail->SMTPAuth = TRUE;
$mail->Host     = "smtp.mydomain.com";
$mail->Port     = 25;
$mail->Username = "noreply@mydomain.com";
$mail->Password = "";
$mail->SetFrom("noreply@mydomain.com", "");
$mail->Subject  = utf8_decode("sub");
$mail->AltBody  = utf8_decode("body");
$mail->MsgHTML(utf8_decode($msg));
$mail->AddAddress("to");
$mail->AddBCC("bcc@mydomain.at");

我认为代码没问题,但我不知道问题出在哪里。 仅在 gmail 中,我从未收到过它。 谢谢!

【问题讨论】:

  • 可能会被归类为垃圾邮件?
  • 不,它不在垃圾邮件中,它不在资源管理器中! :(
  • 试试clientxy.EnableSsl = true;
  • @jjj 那么他必须将端口更改为 587...?或 465...
  • 是的端口,你应该尝试 587

标签: c# email gmail


【解决方案1】:

请查看Gmail settings。不允许通过25端口发送。

试试这个设置

clientxy.Port = 465;
clientxy.EnableSsl = true;

【讨论】:

  • 好的!为什么我不能在 php 中将邮件发送到端口 25 上的 gmail 而不是在 c# 中?
  • @AmokKhan 很难说没有看到你的 PHP 代码。
  • @AmokKhan 澄清 smtp.mydomain.com 始终相同,当您将代码发送给 gmail 用户 me@gmail.com 时,您的代码不起作用。那是对的吗?同样在 php 版本中,您设置的版本可能与 noreply@madigal.at 版本不同。
  • 是的,我忘记重命名它,但它与 hotmail、yahoo、gmx 的工作方式相同
【解决方案2】:

我发现了问题!

我不知道为什么 gmail 没有收到来自 smtpclient 的电子邮件,但我安装了一个带有其他 smtp 功能的 nuget 并且这有效!

谢谢大家的帮助!!

【讨论】:

    【解决方案3】:

    以下设置应该可以工作

    clientxy.Port = 587;
    clientxy.EnableSsl = true;
    

    还有一点是

    您必须至少更改一次密码。并尽量使用安全级别的密码(不要使用与密码相同的用户,123456等)

    【讨论】:

    • 我有一个安全密码! 16 个带有字母数字、数字、字母的字母 - 我认为这不是问题
    猜你喜欢
    • 1970-01-01
    • 2016-03-15
    • 2015-10-20
    • 2014-07-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-16
    相关资源
    最近更新 更多