当前位置: 首页 > 知识库问答 >
问题:

无法使用GoPap配置的Office 365帐户中的C#代码发送电子邮件

傅毅然
2023-03-14

我已从GoPap购买了“Office 365电子邮件要点”计划,用于发送电子邮件。我可以在我的Outlook邮箱中发送和接收这些电子邮件,但不能通过C#代码以编程方式发送和接收这些电子邮件。我不断收到错误”

SMTP 服务器需要安全连接,或者客户端未经过身份验证。服务器响应为:5.7.57 SMTP;客户端未通过身份验证以在来自 [BMXPR01CA0092.INDPRD01.PROD.OUTLOOK.COM] 的邮件期间发送匿名邮件”

MailMessage msg = new MailMessage();
        msg.To.Add(new MailAddress("xxx@gmail.com", "xxx"));
        msg.From = new MailAddress("xxx@mydomain.com", "Admin");
        msg.Subject = "This is a Test Mail";
        msg.Body = "This is a test message using Exchange OnLine";
        msg.IsBodyHtml = true;

        SmtpClient client = new SmtpClient();
        client.UseDefaultCredentials = false;
        client.Credentials = new NetworkCredential("xxx@mydomain.com", "mypassword","mydomain.com");
        client.Port = 587;
        client.Host = "smtp.office365.com";
        client.DeliveryMethod = SmtpDeliveryMethod.Network;
        client.EnableSsl = true;
        //Send the msg
        try
        {
            client.Send(msg);
        }
        catch (Exception ex)
        {
            Console.WriteLine(ex.Message);
        }

这是配置文件中的邮件设置条目 -

<mailSettings>
<smtp from="xxx@mydomain.com">
  <network host="smtp.office365.com" port="587" />
</smtp>
</mailSettings>

我在Outlook中看到的设置是-

服务器名称:smtp.office365.com端口:587加密方式:STARTTLS

或者,我也尝试使用用户ID代替网络凭据中的实际电子邮件地址,但这也不起作用。

我还尝试使用GoDaddy中的MX Txt记录,即服务器“relay hosting.secureserver.net”和端口#25,但没有成功。

我还根据链接 http://edudotnet.blogspot.com/2014/02/smtp-microsoft-office-365-net-smtp.html 更改了“邮箱委派”中的设置,但这也没有帮助。

请帮助我这些步骤中缺少什么。

共有2个答案

仲孙兴旺
2023-03-14

尝试将 SMTP 服务器名称更改为 outlook.office365.com 而不是 smtp.office365.com

汪臻
2023-03-14

在花了几个小时在这上面之后,我发现,为上帝配置的Office 365邮件id的smtp主机是“smtpout.secureserver.net”。

同时将客户端编程为闭合连接,如下所示:

SmtpClient client = new SmtpClient {

   Host = "smtpout.secureserver.net",

   Credentials = new NetworkCredential("USERNAME@DOMAIN.COM", "YOURPWD"),

   Port = 587,

   EnableSsl = true,

   Timeout = 10000

};

这些更新后,它将工作!!!享受

示例控制台应用程序代码!

static void Main(string[] args)
        {
            try
            {
                ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;

                string userId = "username@domainname.com";
                string _pwd = "mypassword";
                var toAddress = "touseremailaddress";
                SmtpClient client = new SmtpClient
                {
                    Host = "smtpout.secureserver.net",
                    Credentials = new NetworkCredential(userId, _pwd),
                    Port = 587,
                    EnableSsl = true
                };
               
                var Msg = new MailMessage();
                Msg.From = new MailAddress(userId);
                Msg.To.Add(new MailAddress(toAddress.ToString()));
                Msg.Subject = "TEST EMAIL";
                Msg.Body = "Hello world";

                Console.WriteLine("start to send email over SSL...");
                client.Send(Msg);
                Console.WriteLine("email was sent successfully!");
                Console.ReadLine();
            }
            catch (Exception ep)
            {
                Console.WriteLine("failed to send email with the following error:");
                Console.WriteLine(ep.Message);
                Console.ReadLine();
            }
        }
 类似资料:
  • 我知道这里已经有很多关于向hotmail发送电子邮件的问题了。我已经通读了它们,以及过去几周的许多在线帖子,但仍然无法解决这个问题。 我遇到的问题是,我无法向拥有hotmail电子邮件地址的客户发送电子邮件。我可以向雅虎发送电子邮件,也可以向gmail发送电子邮件(尽管这些邮件似乎进入了垃圾文件夹),但是当我向hotmail电子邮件地址发送电子邮件时,它们似乎永远不会到达。 我在PHP Symfo

  • 我正在尝试使用CodeIgniter的电子邮件库发送电子邮件。这是我写的代码。 错误:这是我得到的错误。 遇到以下SMTP错误:0php_network_getaddresses:getaddrinfo失败:名称或服务未知无法发送数据:AUTH LOGIN发送AUTH LOGIN命令失败。错误:无法发送数据:邮件从:从:遇到以下SMTP错误:无法发送数据:RCPT TO:到:遇到以下SMTP错误:

  • 我成功通过passportjs验证,但NodeEmailer只发送一封电子邮件,这是控制台中使用的一封电子邮件。云谷歌。 当我尝试其他gmail帐户时,我得到这个错误: 错误:无效登录:535-5.7.8不接受用户名和密码。在535 5.7.8了解更多信息https://support.google.com/mail/?p=BadCredentialsu6sm13346885wrp。0-SMTPC

  • responseerror:禁止在d:\node-projects\ecom\node_modules@sendgrid\client\src\类\client.js:146:29在processTicksAndRejections(internal/process/task_queues.js:93:5){ 代码:403,response:{headers:{server:'nginx',dat

  • 我在主AWS帐户中配置了SES,在其他AWS帐户中配置了Cognito用户池。我想使用主帐户的SES从Cognito发送电子邮件通知。我创建了身份策略并附加到SES电子邮件地址。然而,在其他AWS帐户的Cognito用户池中,它没有显示任何电子邮件地址。我该怎么解决这个问题? 我在同一个帐户中检查了Cognito,它显示了我在SES中验证过的电子邮件身份,但在其他帐户的Cognito用户池中没有。

  • 有没有人知道在没有登录用户的情况下运行的应用程序如何请求使用Graph API发送电子邮件的权限?