我目前拥有的代码是:
public void SendEmail(string to, string cc, string bcc, string subject, string body, string attachmentPath = "", System.Net.Mail.MailPriority emailPriority = MailPriority.Normal, BodyType bodyType = BodyType.HTML)
{
try
{
var client = new System.Net.Mail.SmtpClient();
{
client.Host = "smtp-mail.outlook.com";
client.Port = 587;
client.UseDefaultCredentials = false;
client.EnableSsl = true;
client.DeliveryMethod = System.Net.Mail.SmtpDeliveryMethod.Network;
client.Credentials = new NetworkCredential("[my company email]", "[my password]");
client.Timeout = 600000;
}
MailMessage mail = new MailMessage("[insert my email here]", to);
mail.Subject = subject;
mail.Body = body;
client.Send(mail);
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
我试图发送到的电子邮件地址托管在Office 365的Outlook上。我们可能需要稍后更改特定地址,但它们可能配置相同。
但是,每当我尝试运行客户端.发送(mail);
命令时,都会收到同样的错误,错误的全文是:
The SMTP server requires a secure connection or the client was not authenticated. The server response was: 5.7.57 SMTP; Client was not authenticated to send anonymous mail during MAIL FROM
我已经尝试了一些不同的方法,比如在25到587之间切换端口,将主机更改为office365的,或者将UseDefault凭据
和EnableSssl
切换为true或false。但是我总是看到同样的错误。我还遗漏了什么吗?
我在这个网站的其他地方找到了一个示例代码块,并用它替换了我所有的代码。
函数名和参数是相同的,但是下面是我用它的正文替换的。
var _mailServer = new SmtpClient();
_mailServer.UseDefaultCredentials = false;
_mailServer.Credentials = new NetworkCredential("my email", "my password");
_mailServer.Host = "smtp.office365.com";
_mailServer.TargetName = "STARTTLS/smtp.office365.com";
_mailServer.Port = 587;
_mailServer.EnableSsl = true;
var eml = new MailMessage();
eml.Sender = new MailAddress("my email");
eml.From = eml.Sender;
eml.To.Add(new MailAddress(to));
eml.Subject = subject;
eml.IsBodyHtml = (bodyType == BodyType.HTML);
eml.Body = body;
_mailServer.Send(eml);
我不确定,但我认为用smtp Office 365链接而不是outlook链接替换主机值,以及记住添加一个我以前没有的目标名称,这两种方法都成功解决了授权问题(我之前已经确认这不是我们技术支持的凭证问题)。
我有一个java程序(从谷歌复制的)可以使用office365 SMTP发送电子邮件,它作为一个独立的java程序运行良好,但当我在web应用程序的中将这个java程序部署为jar文件,并从JSP调用该方法时,它抛出了以下错误: 有人能分享一下他们对这个问题的看法吗。java代码:
我必须用我的网络应用程序发送邮件。给定下面显示< code >的代码,SMTP服务器需要安全连接,或者客户端未通过身份验证。服务器响应是: 5.7.57 SMTP;客户端在邮件发送过程中未通过身份验证发送匿名邮件。 帮我找到一个合适的解决方案。非常感谢。 代码:
这仅适用于(smtp.office365.com)smtp。
我正在编写一个Rust应用程序,它将通过启用了SMTP功能的Exchange服务器发送电子邮件。根据微软的网页,需要的设置是: 服务器地址smtp.office365.com 端口587 已启用StartTLS 邮件帐户登录凭据 网络邮件服务的POP/IMAP设置证实了这一点。 这是我的代码(带有一些审查): 当我编译和运行代码时,它给了我这个错误: 错误(永久(响应{代码:代码{严重性:Perm
我正在用asp发送outlook电子邮件。净c#。 当我运行这个程序时,我在(smtp.Send(fromAddress,toAddress,subject,body);)上遇到了一个错误我在网上搜索,试图解决问题,但什么也没找到。请帮忙。我真的很感激。
SMTP服务器 ; [myserverName] 默认用户电子邮件后缀 ; [myemailId] 使用SMTP身份验证 ; true 用户名称 ; [myemailId] 密码 ; [mypassword] 使用SSL ; 假 SMTP