无法将类型 ('string', 'string') 隐式转换为 System.Net.ICredentialsByHost

Posted

技术标签:

【中文标题】无法将类型 (\'string\', \'string\') 隐式转换为 System.Net.ICredentialsByHost【英文标题】:Cannot implicitly convert type ('string', 'string') to System.Net.ICredentialsByHost无法将类型 ('string', 'string') 隐式转换为 System.Net.ICredentialsByHost 【发布时间】:2020-03-07 13:33:02 【问题描述】:

所以我尝试创建一个电子邮件发件人并提供我的帐户信息,然后出现了这个错误:

无法将类型 ('string', 'string') 隐式转换为 System.Net.ICredentialsByHost。

这是代码。

SmtpClient SmtpServer = new SmtpClient("smpt.gmail.com", 587);

SmtpServer.Credentials = ("username", "password"); # The email and password were lighted up with red
MailMessage Mail = new MailMessage();
Mail.From = new MailAddress("from");

出于明显的原因,我更改了电子邮件和密码。

【问题讨论】:

= ("username", "password") 部分看起来不对。你read the documentation of SmtpClient.Credential了吗? 【参考方案1】:

您正在尝试将ValueTuple 转换为ICredentialsByHost。需要构造一个新的 NetworkCredential 实例并在 SmtpServer 中设置:

NetworkCredential credentials = new NetworkCredential("username", "password");  
SmtpServer.Credentials = credentials;

【讨论】:

【参考方案2】:

SmtpServer.Credentials 属性需要一个与ICredentialsByHost 接口接口的对象。 ("username", "password") 不能隐式转换为 ICredentialsByHost 接口的对象。

您可以像这样使用NetworkCredential

SmtpServer.Credentials = new System.Net.NetworkCredential("username", "password");

见this answer

【讨论】:

以上是关于无法将类型 ('string', 'string') 隐式转换为 System.Net.ICredentialsByHost的主要内容,如果未能解决你的问题,请参考以下文章

无法将类型 ('string', 'string') 隐式转换为 System.Net.ICredentialsByHost

错误:无法将“[String]”类型的值分配给 swift 中的“String”类型

C# 无法将类型 system.DateTime转换成 string[]

无法将 [Struct] 类型的值快速转换为 [string] 类型

Swift“无法将''类型的值转换为'String'类型

无法将对象类型“System.String[*]”转换为“System.String[]”