C# 为收件人使用sql表的动态电子邮件列表

C# 为收件人使用sql表的动态电子邮件列表,c#,C#,我希望使用一个sql表列作为列表的源,从一个c控制台应用程序发送多封电子邮件 使用以下代码,我得到一个错误System.FormatException:“指定的字符串不是电子邮件地址所需的格式。” 当我将输出发送到控制台时,传递给var m的所有内容都是字符串的第一个字母 我非常接近完成这项工作,因为这看起来像是最后一件作品 谁能给我指一指让它工作的方向吗 con = new SqlConnection("MyConnectionString");

我希望使用一个sql表列作为列表的源,从一个c控制台应用程序发送多封电子邮件

使用以下代码,我得到一个错误System.FormatException:“指定的字符串不是电子邮件地址所需的格式。”

当我将输出发送到控制台时,传递给var m的所有内容都是字符串的第一个字母

我非常接近完成这项工作,因为这看起来像是最后一件作品

谁能给我指一指让它工作的方向吗

        con = new SqlConnection("MyConnectionString");

        SqlCommand cmd = new SqlCommand();

        cmd.CommandText = "SELECT * FROM UserEmails";
        cmd.Connection = con;

        try
        {
            con.Open();
            SqlDataReader reader = cmd.ExecuteReader();

            while (reader.Read())
            {

                MailMessage mailMessage = new MailMessage();

                //string[] to = { "me@hotmail.com", "me@gmail.com"}; //<-- this works 

                string to = reader.GetString(1);   //<-- this dosent work :( 

                foreach (var m in to)
                {
                    mailMessage.To.Add(m);
                }

                mailMessage.Subject = "Hello";
                mailMessage.Body = "This is a test email";
                mailMessage.From = new MailAddress("me@gmail.com", "me");

                SmtpClient smtpMail = new SmtpClient();
                smtpMail.Host = "smtp.gmail.com";
                smtpMail.Credentials = new NetworkCredential("me@gmail.com", "password");
                smtpMail.EnableSsl = true;

                try
                {
                    smtpMail.Send(mailMessage);
                    Console.WriteLine("Message Sent");
                }
                catch (Exception ex)
                {
                    Console.WriteLine(ex.Message.ToString());
                }
            }
            reader.Close();
        }
        finally
        {
            con.Close();
        }

您可以遍历to的字符,这是一个字符串

与此相反:

foreach (var m in to)
{
  mailMessage.To.Add(m);
}
这样做:

mailMessage.To.Add(new MailAddress(to));

reader.GetString1包含什么?调试器会告诉你什么?@mxmissile,它包含完整的电子邮件地址。当它转到var m时,它变成1个字符。