C# 发送邮件表单异常:System.Runtime.InteropServices.COMException:&引用;使用“发送”÷;?

C# 发送邮件表单异常:System.Runtime.InteropServices.COMException:&引用;使用“发送”÷;?,c#,asp.net,C#,Asp.net,我试图在我的网站上制作一个电子邮件表单(目前是本地主机), 当我运行代码并按“发送”时,会引发以下异常: System.Runtime.InteropServices.COMException:??????“发送使用” ???? ?÷ 有什么问题吗 这是我的代码: <%@ Import Namespace="System.Web.Mail" %> <script language="c#" runat="server"> protected void Butto

我试图在我的网站上制作一个电子邮件表单(目前是本地主机), 当我运行代码并按“发送”时,会引发以下异常:

System.Runtime.InteropServices.COMException:??????“发送使用” ???? ?÷

有什么问题吗

这是我的代码:

<%@ Import Namespace="System.Web.Mail" %>

<script language="c#" runat="server">
    protected void Button2_Click(object sender, EventArgs e)
    {
        MailMessage msg = new MailMessage();

        msg.To = "XXX@gmail.com";

        msg.From = EmailTxt.Text;

        msg.Subject = "Fun With Daniel Email: from" + UsernameTxt.Text;

        msg.Body = MessegeBox.Text;
        msg.BodyFormat = MailFormat.Text;
        ErrorMessege.Text = "Sending..";


        System.Web.Mail.SmtpMail.Send(msg);

        ErrorMessege.Text = "The Email Sent successfully!";



    }

</script>

<td>
                                <asp:TextBox ID="UsernameTxt" runat="server"></asp:TextBox>
                                <asp:RequiredFieldValidator ID="RequiredFieldValidator10" runat="server" ErrorMessage="Please insert a Username"
                                    ControlToValidate="UsernameTxt" ForeColor="Red" Display="None" 
                                    SetFocusOnError="True"></asp:RequiredFieldValidator>
                            </td>
                        </tr>
                        <tr>
                            <td>
                                Email
                            </td>
                            <td>
                                <asp:TextBox ID="EmailTxt" runat="server"></asp:TextBox>
                                <asp:RequiredFieldValidator ID="RequiredFieldValidator11" runat="server" ErrorMessage="Please insert Password"
                                    ControlToValidate="EmailTxt" ForeColor="Red" Display="None" 
                                    SetFocusOnError="True"></asp:RequiredFieldValidator>
                            </td>
                        </tr>
                        <tr>
                            <td>
                                Messege
                            </td>
                            <td>
                                <asp:TextBox ID="MessegeBox" runat="server" Height="100px" TextMode="MultiLine"></asp:TextBox>
                                <asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" ErrorMessage="You have to write a messege"
                                    ControlToValidate="MessegeBox" ForeColor="Red" Display="None" 
                                    SetFocusOnError="True"></asp:RequiredFieldValidator>
                            </td>
                        </tr>
                        <tr>
                            <td>
                                <asp:Button ID="Button2" runat="server" Text="Login" OnClick="Button2_Click" />

                            </td>
                            <td>

                                <asp:Label ID="ErrorMessege" runat="server" ForeColor="Red"></asp:Label>
                                <asp:ValidationSummary ID="ValidationSummary2" runat="server" ForeColor="Red" />
                            </td>

                        </tr>

受保护的无效按钮2\u单击(对象发送者,事件参数e)
{
MailMessage msg=新的MailMessage();
msg.To=”XXX@gmail.com";
msg.From=EmailTxt.Text;
msg.Subject=“Daniel的乐趣电子邮件:来自”+UsernameTxt.Text;
msg.Body=MessegeBox.Text;
msg.BodyFormat=MailFormat.Text;
ErrorMessege.Text=“发送…”;
System.Web.Mail.SmtpMail.Send(msg);
ErrorMessege.Text=“电子邮件已成功发送!”;
}
电子邮件
梅塞奇

尝试发送前是否设置了SmtpServer名称

它将被设置为:

System.Web.Mail.SmtpMail.SmtpServer = "your mail server name goes here";
并且应该放在
System.Web.Mail.SmtpMail.Send(msg)之前


有关如何使用SmtpMail的示例可以在

System.Web上找到。邮件
需要CDONT和CDOSYS,因此在本例中,这是您必须首先查看的内容。有关常见问题的解决方案,请参阅网站


有一个完整的站点专门解决这个名称空间的问题,这一事实应该告诉您最好使用
System.Net.Mail
,这是一个本机SMTP实现,不依赖COM组件。除非您使用的是.NET 1.x,否则应尽可能切换到它。

请注意,System.Web.Mail.SmtpMail已过时,建议您浏览System.NET.Mail类。