C# 发送邮件时出错

C# 发送邮件时出错,c#,asp.net,C#,Asp.net,使用制度; 使用系统集合; 使用系统配置; 使用系统数据; 使用System.Linq; 使用System.Web; 使用System.Web.Security; 使用System.Web.UI; 使用System.Web.UI.HTMLControl; 使用System.Web.UI.WebControl; 使用System.Web.UI.WebControl.WebParts; 使用System.Xml.Linq; 使用System.Net.Mail public partial class

使用制度; 使用系统集合; 使用系统配置; 使用系统数据; 使用System.Linq; 使用System.Web; 使用System.Web.Security; 使用System.Web.UI; 使用System.Web.UI.HTMLControl; 使用System.Web.UI.WebControl; 使用System.Web.UI.WebControl.WebParts; 使用System.Xml.Linq; 使用System.Net.Mail

public partial class adminEmail : System.Web.UI.Page
{
    string address = null;
    string to = null;
    protected void Page_Load(object sender, EventArgs e)
    {
        for (int i = 0; i < GridView1.Rows.Count; i++)
        {
            if (address == null)
                address = GridView1.Rows[0].Cells[1].Text;

            else
                address = address + "," + GridView1.Rows[i].Cells[1].Text;
            Label2.Text = address;
            string to = address;
            txtTo.Text = to;
        }

    }
    protected void btnSubmit_Click(object sender, EventArgs e)
    {



        string from = ".com"; //Replace this with your own correct Gmail Address


        //Replace this with the Email Address to whom you want to send the mail

        Label1.Text = "Mail sent successfully";
        Label1.Visible = true;
        MailMessage mail = new System.Net.Mail.MailMessage();
        Label2.Text = address;

       /*gettting error here*/ mail.To.Add(new MailAddress(to));
        mail.From = new MailAddress(from, "Check My Ads", System.Text.Encoding.UTF8);
        mail.Subject = txtSubject.Text;
        mail.SubjectEncoding = System.Text.Encoding.UTF8;
        mail.Body = Editor1.ScriptPath;
        mail.BodyEncoding = System.Text.Encoding.UTF8;
        mail.IsBodyHtml = true;
        mail.Priority = MailPriority.High;

        SmtpClient client = new SmtpClient();
        //Add the Creddentials- use your own email id and password

        client.Credentials = new System.Net.NetworkCredential(from, "password");

        client.Port = 587; // Gmail works on this port
        client.Host = "smtp.gmail.com";
        client.EnableSsl = true; //Gmail works on Server Secured Layer
        try
        {
            client.Send(mail);
        }
        catch (Exception ex)
        {
            Exception ex2 = ex;
            string errorMessage = string.Empty;
            while (ex2 != null)
            {
                errorMessage += ex2.ToString();
                ex2 = ex2.InnerException;
            }

        }
    }
    protected void btnCancel_Click(object sender, EventArgs e)
    {

    }
}
public部分类管理员电子邮件:System.Web.UI.Page
{
字符串地址=空;
字符串to=null;
受保护的无效页面加载(对象发送方、事件参数e)
{
对于(int i=0;i
还有我的.aspx代码

<%@ Page Language="C#" MasterPageFile="~/Admin.master" AutoEventWireup="true" CodeFile="adminEmail.aspx.cs" Inherits="adminEmail" Title="Untitled Page" %>

<%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit.HTMLEditor"
    TagPrefix="cc1" %>

<%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="asp" %>

<%@ Register Assembly="System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"  Namespace="System.Web.UI" TagPrefix="asp" %>



<asp:Content ID="Content1" ContentPlaceHolderID="head" Runat="Server">
    <asp:ToolkitScriptManager ID="ToolkitScriptManager1" runat="server">
    </asp:ToolkitScriptManager>
        <div>
        <center>
            <table style="width: 652px; height: 504px">
                <tr>
                    <td   colspan="2">
                        <span style="color: activecaption"><strong><em><span style="font-size: 16pt">
                        Mail Sender</span></em></strong>
                        </span>
                    </td>
                </tr>
                <tr>
                    <td style="height: 26px" >
                        <strong><span style="color: activecaption">
                        Enter UserName</span></strong>
                    </td>
                    <td align=left style="height: 26px">
                        <asp:TextBox ID="txtUserName" runat="server" Width="169px"></asp:TextBox>
                    </td>
                </tr>
                <tr>
                    <td>
                        <strong><span style="color:Gray"><span style="color: activecaption">
                        Enter Password</span> </span></strong>
                    </td>
                    <td align=left>
                        <asp:TextBox ID="txtPassword" runat="server" TextMode="Password" Width="168px"></asp:TextBox>
                    </td>
                </tr>
                <tr>
                    <td>
                        <strong><span style="color: activecaption">
                        To:</span></strong>
                    </td>
                    <td align=left>
                        <asp:TextBox ID="txtTo" runat="server" Width="169px" Height="22px"></asp:TextBox>
                    </td>
                </tr>
                <tr>
                    <td>
                        <strong><span style="color: activecaption">
                        Subject:</span></strong>
                    </td>
                    <td align=left>
                        <asp:TextBox ID="txtSubject" runat="server" Width="168px"></asp:TextBox>
                    </td>
                </tr>
                <tr>
                    <td>
                        <strong><span style="color: activecaption">
                        Body: </span></strong>
                    </td>
                    <td align="left">
                        <cc1:Editor ID="Editor1" runat="server" ButtonMouseOverBorderColor="GradientInactiveCaption" ButtonMouseOverColor="ActiveCaption" DialogButtonBarColor="ActiveCaption" DialogHeadingColor="ActiveCaption" DialogSelectedTabColor="ActiveCaption" DialogUnselectedTabColor="ActiveCaption" EditorBorderColor="ActiveCaption" SelectedTabBackColor="ActiveCaption" SelectedTabTextColor="InactiveCaptionText" TabBackColor="ActiveCaption" TabMouseOverColor="GradientActiveCaption" ToolbarColor="GradientActiveCaption" />
                        &nbsp;&nbsp;
                    </td>
                </tr>
                <tr>
                    <td colspan="2">
                        <asp:Button ID="btnSubmit" runat="server" Text="SUBMIT" Font-Bold="True" ForeColor="ActiveCaption" OnClick="btnSubmit_Click" />
                           <asp:Button ID="btnCancel" runat="server" Text="RESET" CausesValidation="False" Font-Bold="True" ForeColor="ActiveCaption" OnClick="btnCancel_Click" UseSubmitBehavior="False" />
                        <br />
                        <br />
                        <br />
                        <asp:Label ID="Label1" runat="server" Text="Label" Visible=false></asp:Label>
                        <br />
                        <br />
                        <br />
                        <br />
                        <asp:Label ID="Label2" runat="server" Text="Label"></asp:Label>
                        <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" 
                            DataKeyNames="username" DataSourceID="SqlDataSource1" Width="223px">
                            <Columns>
                                <asp:BoundField DataField="username" HeaderText="username" ReadOnly="True" 
                                    SortExpression="username" />
                                <asp:BoundField DataField="emailid" HeaderText="emailid" 
                                    SortExpression="emailid" />
                                <asp:BoundField DataField="gender" HeaderText="gender" 
                                    SortExpression="gender" />
                            </Columns>
                        </asp:GridView>
                        <asp:SqlDataSource ID="SqlDataSource1" runat="server" 
                            ConnectionString="<%$ ConnectionStrings:eclassConnectionString2 %>" 
                            SelectCommand="SELECT [username], [emailid], [gender] FROM [userdetails] WHERE ([status_user] = @status_user)">
                            <SelectParameters>
                                <asp:Parameter DefaultValue="new" Name="status_user" Type="String" />
                            </SelectParameters>
                        </asp:SqlDataSource>
                    </td>

                </tr>
            </table>
            </center>
        </div>
</asp:Content>


邮件发件人

输入用户名

输入密码

收件人:

主题:

正文:







请告诉我什么是我的错

/*gettting error here*/ mail.To.Add(new MailAddress(to)); 

您从未在任何地方将
的值设置为
。在
Page\u Load
方法中,有一个名为
to
的局部变量,它隐藏了类成员。将您的代码更改为适当的值,然后查看您的结果。

您尚未将
定义为

 /*gettting error here*/ mail.To.Add(new MailAddress(to));
试试这个:

 mail.To.Add(new MailAddress(txtTo.Text));

用以下代码替换您的“发送”代码:

var client = new SmtpClient("smtp.gmail.com", 587)
{
    Credentials = new NetworkCredential("myusername@gmail.com", "mypwd"),
    EnableSsl = true
};
client.Send("myusername@gmail.com", "myusername@gmail.com", "testSubject", "testbody");

你得到的错误是什么?但是即使在做了所有这些之后,我的邮件仍然没有被发送……我是否使用了正确的方式客户端。发送(from,to,txtSubject.Text,Editor1.ToString());此处获取错误System.InvalidOperationException:未指定SMTP主机。在重新检查我的代码后,错误仍然得到解决,但我的邮件未被发送..任何人能否告诉我原因..@shweta,放置断点并逐步检查代码。您会注意到,您正在捕获并基本上接受一个异常。通过单步遍历代码,找出代码的去向,您可能会看到有什么问题。这样做的目的是缩小问题的范围,然后发布一个问题,这样就可以让某人在不必查看代码墙的情况下快速提供准确的回答。是的,谢谢。。我做到了。。问题是我没有使用正确的密码。。。client.Credentials=news
var client = new SmtpClient("smtp.gmail.com", 587)
{
    Credentials = new NetworkCredential("myusername@gmail.com", "mypwd"),
    EnableSsl = true
};
client.Send("myusername@gmail.com", "myusername@gmail.com", "testSubject", "testbody");