RHa*_*ris 15 .net c# smtp office365 mailkit
我们正在考虑迁移到 O365;然而,我们开发的软件使用我们当前的 Exchange 服务器在发生错误时向外部用户和支持箱发送电子邮件。
我一直在对此进行测试,以确保我们现有的代码将继续与 O365 一起使用,但到目前为止,我还没有取得很大的成功。
我曾尝试使用 .Net 的 SmtpClient 以及 MailKit 的 SmtpClient,但似乎都不起作用。我不断收到错误(这是来自 MailKit 的错误——.Net 错误是类似的)
“AuthenticationInvalidCredentials:5.7.3 身份验证不成功 [*.prod.exchangelabs.com]”
我可以使用代码中的凭据登录 OWA - 所以我知道凭据是有效的。不能通过 O356 发送电子邮件吗?Exchange 中是否需要进行任何特殊配置才能实现这一点?
这是我迄今为止尝试过的:
邮件套件
var msg = new MimeMessage();
msg.From.Add(new MailboxAddress("Support","support@mydomain.com"));
msg.To.Add(new MailboxAddress("Me","me@mydomain.com"));
msg.To.Add(new MailboxAddress("External User","euser@externaldomain.com"));
msg.Subject = "Test";
msg.Body = new TextPart("plain"){
Text = "Here is a message for you"
};
using(var client = new SmtpClient()){
client.ServerCertificateValidationCallback = (s,c,h,e) => true;
client.AuthenticationMechanisms.Remove("XOAUTH2"); //Not sure what this does. Have tried with and without
client.Connect("smtp.office365.com", 587, MailKit.Security.SecureSocketOptions.StartTls);
client.Authenticate(new NetworkCredential("support@mydomain.com", "supportPwd"));
client.Send(msg);
client.Disconnect(true);
}
Run Code Online (Sandbox Code Playgroud)
.Net SmtpClient 代码看起来与 MailKit 代码非常相似。
更新
我仍然收到相同的错误消息。我们确实为域用户启用了 MFA。但是,我们有一项策略,当用户从受信任的位置(我们组织的 IP)登录时,他们不需要 MFA。我还将我们的 IP 列为可信 IP。在我看来,MFA 不应该是这里的问题。
我知道凭据是正确的。我从代码中复制它们,然后在登录 M365 时将它们粘贴到登录屏幕中——我进入得很好。
我究竟做错了什么?
Wol*_*ues 10
Server-settings : https://support.office.com/en-us/article/POP-IMAP-and-SMTP-settings-for-Outlook-com-d088b986-291d-42b8-9564-9c414e2aa040
SMTP server name smtp.office365.com
SMTP port 587
SMTP encryption method STARTTLS
Run Code Online (Sandbox Code Playgroud)
A customer of ours has a newsletter system set up with TYPO3 and we had to create a new mailbox for this. However, a light one will suffice: instead of a Office 365 Business Premium we only assigned a Office 365 F1 licence.
Edit: also found this: Can Office365 shared mailbox use SMTP?
| 归档时间: |
|
| 查看次数: |
6435 次 |
| 最近记录: |