使用smtp和Outlook.Office365.com发送电子邮件

cog*_*icc 3 asp.net email office365

我正忙着使用outlook.office365.com和ASP.NET发送电子邮件.

我将联系表单中的电子邮件地址作为"FROM"电子邮件传递.如果我将"FROM"地址从联系表单输入更改为"no-reply@mydomain.com",则可以正常工作.如果您从不同的域发送邮件服务器所在的电子邮件,显然会丢失一步.

这是我的错误:"System.Net.Mail.SmtpException:邮箱不可用.服务器响应是:5.7.60 SMTP;客户端没有权限发送此发件人".我查了一下,结果几乎告诉我在我的Outlook客户端中设置权限,我没有使用.

请让我知道我哪里出错了.谢谢

我使用以下身份验证来发送电子邮件:

//msg.From = new MailAddress("no-reply@plassonusa.com", "What's Up");
//This is the From I want to use.  The 1st one is the only one that works
msg.From = new MailAddress(txtEmail.Text, "What's Up");
msg.To.Add(emailTo);
msg.Subject = "my subject";

msg.IsBodyHtml = true;
msg.Body = "foo";

msg.Priority = MailPriority.High;

var smtpClient = new SmtpClient("outlook.office365.com", 587)
{
    DeliveryMethod = SmtpDeliveryMethod.Network,
    UseDefaultCredentials = false,                              
    Credentials = new NetworkCredential("no-reply@domain.com", "mypassword"),
    EnableSsl = true
};

if (msg.To.Count > 0)
{
    try
    {
        smtpClient.Send(msg);
    }
    catch (Exception ex)
    {
        var error = ex.ToString();
    }

}
Run Code Online (Sandbox Code Playgroud)

Mar*_*eke 6

我在我的代码中看到的一件事就是我的SmtpClient配置如下:

client.TargetName = "STARTTLS/smtp.office365.com";
Run Code Online (Sandbox Code Playgroud)

此外,我发送的主机值是"smtp.office365.com"而不是"outlook.office365.com".

编辑:

我刚用我的工作代码构建了这个测试用例.这将发送一封电子邮件,假设您拥有发送的帐户的有效电子邮件和密码.

string sendFromEmail = "sendfrom@email.com";
string sendFromPassword = "TBD";

using (SmtpClient client = new SmtpClient("smtp.office365.com", 587))
{
    client.Credentials = new NetworkCredential(sendFromEmail, sendFromPassword);
    client.EnableSsl = true;
    client.TargetName = "STARTTLS/smtp.office365.com";

    MailMessage mail = new MailMessage();
    mail.From = new MailAddress(sendFromEmail);
    mail.To.Add("destination@email.com");

    mail.Subject = "Subject";
    mail.Body = "Test Email";
    mail.IsBodyHtml = false;

    client.Send(mail);
}
Run Code Online (Sandbox Code Playgroud)

希望这可以帮助.


Abd*_*auf 6

我通过使用"From"的相同电子邮件ID来修复它,该电子邮件ID用作SMTP用户.