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

无法使用 C 使用 Office 365 凭据发送电子邮件#

杨鸿畅
2023-03-14

我正在尝试使用C#使用我的Office 365凭据发送电子邮件。但是它无法发送并获得异常。

如何解决这个问题?可以从办公室365发送吗?

     foreach (var filename in files)
     {
           String userName = "sri@MyOffice365domain.com";
           String password = "password";
           MailMessage mail = new MailMessage();
           SmtpClient SmtpServer = new SmtpClient("smtp.office365.com");
           mail.From = new MailAddress("sri@MyOffice365domain.com");
           mail.To.Add("senderaddress@senderdomain.com");
           mail.Subject = "Fwd: for " + filename;
           mail.Body = "mail with attachment";

           System.Net.Mail.Attachment attachment;
           attachment = new System.Net.Mail.Attachment(filename);
           mail.Attachments.Add(attachment);

           SmtpServer.Port = 587;
           SmtpServer.Credentials = new System.Net.NetworkCredential(userName, password);
           SmtpServer.EnableSsl = true;

           SmtpServer.Send(mail);
}

事务失败。服务器响应为:5.2.0 STOREDRV.Submission。异常:SendAsDeniedException。MapiExceptionSendAsDenied;由于消息为“无法提交消息”的永久异常,无法处理消息。

共有1个答案

左丘积厚
2023-03-14

您将同时发送多少封电子邮件?

foreach (文件中的变量文件名)

通过https://outlook.office.com/apihttps://outlook.office365.com/api访问的所有Outlook API的限制是每分钟60个请求,每个用户(或组),每个应用ID。因此,目前,开发人员只能从应用程序进行有限的API调用。阅读Microsoft博客文章,了解有关REST API调用限制的更多详细信息。

请尝试使用以下代码:

MailMessage msg = new MailMessage();
msg.To.Add(new MailAddress("someone@somedomain.com", "SomeOne"));
msg.From = new MailAddress("you@yourdomain.com", "You");
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 System.Net.NetworkCredential("your user name", "your password");
client.Port = 587; // You can use Port 25 if 587 is blocked (mine is!)
client.Host = "smtp.office365.com";
client.DeliveryMethod = SmtpDeliveryMethod.Network;
client.EnableSsl = true;
try
{
    client.Send(msg);
    lblText.Text = "Message Sent Succesfully";
}
catch (Exception ex)
{
    lblText.Text = ex.ToString();
}
 类似资料:
  • 我下载了Office 365 Connect ASP。NET MVC示例代码http://dev.office.com/code-samples-detail/5985,将其注册为Azure Active Directory中的应用程序(我具有全局管理员权限),并授予其所需的权限-“登录并读取用户配置文件”和“以用户身份发送邮件”(无其他权限),以及配置了web。配置为“ClientID”和“Cl

  • 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

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

  • 尝试使用SmtpClient从我的c# winforms应用程序发送电子邮件。根据这篇MS文章来看,这应该是可行的。我已经搜索了许多论坛等,没有找到任何解决方案。错误消息似乎表明客户端未通过身份验证。密码是正确的,我已经用这个密码登录了。2FA是开着的,但是它不应该妨碍我们,不是吗? 我查过的东西都到位了 启用SSl 来自电子邮件和用户电子邮件是相同的 端口587 我在Outlook中有这个帐户,

  • 我得到下面提到的错误。我将mail.jar、activation.jar、mailapi.jar、common-lang3.jar复制到/usr/lib/jvm/java-8-openjdk-amd64/jre/lib/ext

  • 我正在使用发送电子邮件,但得到的错误是 我正在做的是,我有一个类作为。 上面的类有一个静态方法,-它将SMTP服务器设置和消息详细信息作为参数。 我把SMTP服务器设置放在我的web.xml文件中,但不知道出了什么问题 我的类 } 这是我的网站。xml文件 这是我的servlet类 我在做正确的事情,但不知道问题是什么 如果我在gmail中启用较少的安全应用程序设置,那么它的工作正常,我不认为这是