SMTP gmail客户端与不同的主机工作奇怪

时间:2014-10-31 13:04:09

标签: c# email gmail smtpclient

我在C#中编写了以下用于发送消息的代码:

bool ret = false;
MailAddress fromAddress = new MailAddress("addressfrom@gmail.com", "Name");
string fromPassword = "MyPassw";

        try
        {
            SmtpClient smtp = new SmtpClient
            {
                //Host = "smtp.gmail.com",
                //Port = 587,
                //EnableSsl = true,

                Host = "rs.t-home.mk",
                Port = 25,
                EnableSsl = false,
                DeliveryMethod = SmtpDeliveryMethod.Network,
                UseDefaultCredentials = false,
                Credentials = new System.Net.NetworkCredential(fromAddress.Address, fromPassword)
            };

            System.Web.UI.WebControls.MailDefinition md = new System.Web.UI.WebControls.MailDefinition();
            md.From = "addressfrom@gmail.com";
            md.IsBodyHtml = false;
            md.Subject = subject;
            System.Collections.Specialized.ListDictionary replacements = new System.Collections.Specialized.ListDictionary();
            MailMessage msg = md.CreateMailMessage("mailTo@address.com", replacements, body, new System.Web.UI.Control());//belinaljupce@belina.com.mk
            smtp.Send(msg);
            ret = true;
        }
        catch
        {
            ret = false;
        }

在本地测试此代码时,使用此SmtpClient设置:

Host = "smtp.gmail.com",
Port = 587,
EnableSsl = true

一切都很好,我可以发送消息,也可以发送到我的Gmail帐户的发送文件夹中,我可以看到所有发送来自此SmtpClient的消息

但是当我在服务器上发布此代码时,我必须使用此SmtpClient设置:

Host = "rs.t-home.mk",
Port = 25,
EnableSsl = false

我可以发送电子邮件,通常,它工作正常,但在我的Gmail帐户的发送文件夹中,我没有看到来自此SmtpClient的发送消息,尽管邮件已发送(我已经发送)选中," mailTo@address.com"收到消息) 所以我很好奇是什么导致了这一点,并想知道如何解决这个问题。

1 个答案:

答案 0 :(得分:0)

  

我可以发送电子邮件,通常,它工作正常,但在我的Gmail帐户的发送文件夹中,我没有看到来自此SmtpClient的发送消息,虽然邮件已发送(我已检查过,并且“ mailTo@address.com“收到消息”所以我很好奇是什么导致了这一点,并想知道如何解决这个问题。

这是因为rs.t-home.mk不是Gmail SMTP服务器。更简单的“修复”是将您的Gmail帐户包含在BCC中。