C# 在.net mail FROM节中使用变量名和电子邮件

C# 在.net mail FROM节中使用变量名和电子邮件,c#,.net,email,C#,.net,Email,我正在创建一个表格,该表格将用于表达对本地倡议的支持。表单需要有显示显示名称的选项,以及用户输入的电子邮件,而不是全部来自表单域,例如advocates@mysite.com. 因此,在我的for中有两个字段用于此目的,txtNameFrom和txtEmailFrom。我是这样使用它们的: //mail.From = new MailAddress("advocates@mysite.com", "mysite advocates"); mail.From = new MailAddress(

我正在创建一个表格,该表格将用于表达对本地倡议的支持。表单需要有显示显示名称的选项,以及用户输入的电子邮件,而不是全部来自表单域,例如advocates@mysite.com. 因此,在我的for中有两个字段用于此目的,txtNameFrom和txtEmailFrom。我是这样使用它们的:

//mail.From = new MailAddress("advocates@mysite.com", "mysite advocates");
mail.From = new MailAddress(txtEmailFrom.ToString(), txtNameFrom.ToString());
mail.To.Add(new MailAddress("adv1@mysite.com"));
mail.To.Add(new MailAddress("adv2@mysite.com"));
mail.Subject = txtSubject.Text;
mail.Body = txtBody.Text;
因此,我注释掉的这行代码工作得很好,但是,一旦我在其中抛出变量,就会收到以下错误:

[FormatException: The specified string is not in the form required for an e-mail address.]
所以我假设ToString()一定是不正确的,但不确定还要尝试哪一个-如果这是可能的话? 谢谢

变化:

txtEmailFrom.ToString()

.ToString()
确实不正确。假设
txtEmailFrom
是一个
TextBox
,那么对其调用
.ToString()
将返回如下结果:

"System.Windows.Forms.TextBox"
或者该类型的完全限定名是什么。您要查找的是该对象上的
.Text
属性:

txtEmailFrom.Text
导致:

mail.From = new MailAddress(txtEmailFrom.Text, txtNameFrom.Text);

您没有使用textbox的
Text
值,而是直接在打印出
System.Web.textbox
或类似内容的对象上调用
ToString
。使用
文本
属性:

mail.From = new MailAddress(txtEmailFrom.Text, txtNameFrom.Text)
“但不确定还要尝试哪个”-如果出现异常,请调试它。在抛出错误的行上放置断点,并检查
txtEmailFrom.ToString()
。它将显示类似于
System.Windows.Forms.TextBox的内容,因此显然
ToString()
不是您想要的,因为它不是有效的电子邮件地址。请参阅该类的,并认识到您需要
Text
属性。
mail.From = new MailAddress(txtEmailFrom.Text, txtNameFrom.Text)