c# – SmtpClient.Send不适用于linux环境
发布时间:2020-12-15 22:47:47 所属栏目:百科 来源:网络整理
导读:以下代码,在.net core 2环境中编写,适用于 Windows环境,但不适用于 Linux环境. string host = "10.99.99.10";int port = 25;string userName = "user@user.com";string password = "password";string from = userName;var client = new SmtpClient{ Host = h
以下代码,在.net core 2环境中编写,适用于
Windows环境,但不适用于
Linux环境.
string host = "10.99.99.10"; int port = 25; string userName = "user@user.com"; string password = "password"; string from = userName; var client = new SmtpClient { Host = host,Port = port,EnableSsl = false,DeliveryMethod = SmtpDeliveryMethod.Network,UseDefaultCredentials = false,Credentials = new NetworkCredential(userName,password) }; MailMessage mailMessage = new MailMessage(); mailMessage.From = new MailAddress(from); mailMessage.To.Add(userName); mailMessage.Body = "This is test mail."; mailMessage.Subject = "Testing"; client.Send(mailMessage); 例外:发送邮件失败. InnerExcepiton: System.ComponentModel.Win32Exception (0x80004005): GSSAPI operation failed with error - An invalid status code was supplied (Unknown error). at System.Net.Security.NegotiateStreamPal.AcquireCredentialsHandle(String package,Boolean isServer,NetworkCredential credential) at System.Net.NTAuthentication.Initialize(Boolean isServer,String package,NetworkCredential credential,String spn,ContextFlagsPal requestedContextFlags,ChannelBinding channelBinding) at System.Net.Mail.SmtpNtlmAuthenticationModule.Authenticate(String challenge,Object sessionCookie,ChannelBinding channelBindingToken) at System.Net.Mail.SmtpConnection.SetContextAndTryAuthenticate(ISmtpAuthenticationModule module,ContextAwareResult context) at System.Net.Mail.SmtpConnection.GetConnection(String host,Int32 port) at System.Net.Mail.SmtpTransport.GetConnection(String host,Int32 port) at System.Net.Mail.SmtpClient.GetConnection() at System.Net.Mail.SmtpClient.Send(MailMessage message) 堆栈跟踪: at System.Net.Mail.SmtpClient.Send(MailMessage message) at MyProject.Helper.Utils.SendMail() in C:TestMyProjectMyProject.HelperUtils.cs:line 146 Linux:Ubuntu 16.04.3 LTS 这是一个控制台应用程序. 解决方法
我认为这是一个代码错误,因为我有错误,但事实并非如此.当我在邮件服务器端给出中继权限时,我的问题就解决了.我认为它是在Windows环境中自动执行此操作.
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |