无法将类型 ('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[]