为通过 Office 365 发送的邮件设置不同的发件人地址

Setting different From address for mail send through Office 365

使用office 365发送邮件时,如何设置不同的发件人地址。基本上,我提供的凭据是针对 office 365 account/username 的,而我提到的电子邮件地址是不同的帐户。所以这必须是一样的?

下面是我的代码。

MailMessage msg = new MailMessage();
msg.To.Add(new MailAddress("toid@domain.com", "To Name"));
msg.From = new MailAddress("fromid@domain.com", "From Name");
msg.Subject = "Azure Web App Email using smtp.office365.com";
msg.Body = "Test message using smtp.office365.com on Azure from a Web App";
msg.IsBodyHtml = true;
SmtpClient client = new SmtpClient();
client.UseDefaultCredentials = false;
client.Credentials = new System.Net.NetworkCredential("o365id@domain.com", "O365 PASS");
client.Port = 587;
client.Host = "smtp.office365.com";
client.DeliveryMethod = SmtpDeliveryMethod.Network;
client.EnableSsl = true;

但它给我以下错误,

Mailbox unavailable. The server response was: 5.7.60 SMTP; Client does not have permissions to send as this sender

基本上我想在发送邮件时设置不同的发件人地址。

编辑 1:发件人电子邮件地址将是登录用户的电子邮件 ID。这将来自同一域,但考虑到这一点,我们能否授予普通邮箱的发送权限。

该错误意味着您尝试发送的凭据不具有您尝试作为发件人发送的 user/mailbox 的 SendAS 权限。要解决此问题,您需要通过门户网站 https://technet.microsoft.com/en-AU/library/jj919240%28v=exchg.150%29.aspx?f=255&MSPPError=-2147217396 或使用 PowerShell

授予该权限
Add-ADPermission -Identity helpdesksupport -User o365id@domain.com -ExtendedRights "Send As"