11 / 11 / 1
Регистрация: 25.01.2012
Сообщений: 103
1

Не удается преобразовать из типа "char" в тип "string"

26.01.2012, 12:58. Показов 11221. Ответов 8
Метки нет (Все метки)

Возникла необходимость отправить нескольким адресатам Email сообщение. Для этого я базу данных с адресами занес в массив, после из массива в foreach. Ругается на foreach:

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
StreamReader DataBaseOpen = new StreamReader("email.db");
            string[] Mas = new string[0];
            string TempString;
            while((TempString = DataBaseOpen.ReadLine()) != null)
            {
                Array.Resize(ref Mas, Mas.Length+1);
                Mas[Mas.Length-1] = TempString;
                Console.WriteLine(TempString);
                foreach (string Email in TempString) 
                {
                    Console.WriteLine(TempString);
                    MailMessage Message = new MailMessage();
                    SmtpClient Client = new SmtpClient("smpt.mail.ru");
                    Message.From = new MailAddress("Федор Питренко");
                    Client.Credentials = new NetworkCredential("логин", "пароль");
                    Message.To.Add(TempString);
                    Message.Subject = "Здравствуйте";
                    Message.Body = "TeST";
                    Message.IsBodyHtml = true;
                    Client.Send(Message);
                }
            }
Cannot convert type 'char' to 'string' (CS0030) VCore.cs:74,9

В чем проблемма?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
26.01.2012, 12:58
Ответы с готовыми решениями:

Не удается неявно преобразовать тип "string в "double"
Добрый день не пойму в чем дело? А как кстати узнать какой у меня NET версии? double a =...

LINQ: Невозможно преобразовать "лямбда-выражение" к типу "string", поскольку он не является делегатом
Здравствуйте. Делаю приложение с использованием Entity Framework. Все было нормально, пока не...

Ошибка после конвертации метода на С++ к С#: "Неявное преобразование типа "int" в "bool" невозможно"
Ошибка после преобразования метода на С++ к С#: "Неявное преобразование типа "int" в "bool"...

Ошибка CS0019: Оператор "*" не может применяться к операндам типа "decimal" и "float"
Здравствуйте! Писал приложение и наткнулся на интересную ошибку (честно говоря, я не совсем понимаю...

8
Эксперт .NET
17088 / 12562 / 3300
Регистрация: 17.09.2011
Сообщений: 20,818
26.01.2012, 13:29 2
TempString - это строка, EMail - это элемент строки, то есть одна буква, а вы ее пытаетесь преобразовать в строку в блоке foreach
0
11 / 11 / 1
Регистрация: 25.01.2012
Сообщений: 103
26.01.2012, 13:46  [ТС] 3
Все конечно хорошо, но что делать-то?
0
1562 / 1114 / 164
Регистрация: 23.07.2010
Сообщений: 6,441
26.01.2012, 19:45 4
Цитата Сообщение от CycleFunction Посмотреть сообщение
Возникла необходимость отправить нескольким адресатам Email сообщение. Для этого я базу данных с адресами занес в массив, после из массива в foreach. Ругается на foreach:

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
StreamReader DataBaseOpen = new StreamReader("email.db");
        //  string[] Mas = new string[0];
            string TempString;
            while((TempString = DataBaseOpen.ReadLine()) != null)
            {
            //  Array.Resize(ref Mas, Mas.Length+1);
            //  Mas[Mas.Length-1] = TempString;
            //  Console.WriteLine(TempString);
            //  foreach (string Email in TempString) 
            //  {
                    Console.WriteLine(TempString);
                    MailMessage Message = new MailMessage();
                    SmtpClient Client = new SmtpClient("smpt.mail.ru");
                    Message.From = new MailAddress("Федор Питренко");
                    Client.Credentials = new NetworkCredential("логин", "пароль");
                    Message.To.Add(TempString);
                    Message.Subject = "Здравствуйте";
                    Message.Body = "TeST";
                    Message.IsBodyHtml = true;
                    Client.Send(Message);
            //  }
            }
Cannot convert type 'char' to 'string' (CS0030) VCore.cs:74,9

В чем проблемма?
Так попробуй
0
11 / 11 / 1
Регистрация: 25.01.2012
Сообщений: 103
27.01.2012, 06:47  [ТС] 5
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
StreamReader DataBaseOpen = new StreamReader("email.db");
     string TempString;
            while((TempString = DataBaseOpen.ReadToEnd()) != null)
            {
                Console.Write(TempString);
                MailMessage Message = new MailMessage();
                SmtpClient Client = new SmtpClient("smpt.mail.ru");
                Message.From = new MailAddress("Fedor Petrenko");
                Client.Credentials = new NetworkCredential("login", "pass");
                Message.To.Add(TempString);
                Message.Subject = "Helo!";
                Message.Body = "TeST";
                Message.IsBodyHtml = false;
                Client.Send(Message);
            }
System.FormatException: The specified string is not in the form required for an e-mail address.

Добавлено через 2 минуты
Если что в файле несколько адрессов:

Вася@маил.ру
Петя@маил.ру
Федя@маил.ру
И неезвестно сколько будет еще.
0
2718 / 2028 / 375
Регистрация: 22.07.2011
Сообщений: 7,686
27.01.2012, 19:09 6
Цитата Сообщение от CycleFunction Посмотреть сообщение
Message.From = new MailAddress("Fedor Petrenko");
- new MailAddress("FedorPetrenko@mail.ru","Fedor Petrenko");
0
11 / 11 / 1
Регистрация: 25.01.2012
Сообщений: 103
28.01.2012, 12:08  [ТС] 7
А толку-то? Итак работает (если просто отправлять), а в цикле foreach...
0
2718 / 2028 / 375
Регистрация: 22.07.2011
Сообщений: 7,686
28.01.2012, 12:31 8
Ну ясно что проблема в формате адресов, ты хоть строчку ошибки укажи, значит тут не верно:
C#
1
Message.To.Add(TempString);
- нужно через запятую указывать несколько email-ов или добавлять несколько раз в To.Add


C#
1
2
3
4
            string mailList = System.IO.File.ReadAllText("email.db");
            SmtpClient Client = new SmtpClient("smpt.mail.ru");
            Client.Credentials = new NetworkCredential("login", "pass");
            Client.Send("FedorPetrenko@mai.ru", mailList.Replace("\r\n", ","), "subject", "body");
0
11 / 11 / 1
Регистрация: 25.01.2012
Сообщений: 103
31.01.2012, 03:14  [ТС] 9
А нельзя в массив занести и в цикле отправлять?
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
31.01.2012, 03:14
Помогаю со студенческими работами здесь

Оператор ">" невозможно применить к операнду типа "IContainer" и "<NULL>".
// Оператор &quot;&gt;&quot; невозможно применить к операнду типа &quot;IContainer&quot; и &quot;&lt;NULL&gt;&quot;. if...

Ошибка: "Не удалось привести тип объекта "System.ConsoleKeyInfo" к типу "System.IConvertible"."
При запуске пишет, что &quot;Не удалось привести тип объекта &quot;System.ConsoleKeyInfo&quot; к типу...

Элемент диаграммы с именем "Series1" не удается найти в "SeriesCollection"
Почему у меня пишет исключение: Элемент диаграммы с именем &quot;Series1&quot; не удается найти в...

Ошибка "Тип "MyPoint" создан из нескольких разделенных классов в одном и том же файле." при открытии дизайнера
Добрый день, формучане. У меня возникла необходимость добавления моего класса в коллекцию, для...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru