Форум программистов, компьютерный форум, киберфорум
Visual Basic .NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/8: Рейтинг темы: голосов - 8, средняя оценка - 4.50
0 / 0 / 0
Регистрация: 29.05.2017
Сообщений: 91

Отправка почты с настройками из файла xml

29.05.2017, 10:26. Показов 1799. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток. Понимаю, что тема уже заезжена и избита, но все же не нашел то что мне необходимо. Есть простой код для отправки e-mail, который я нашел. Все работает!
VB.NET
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
mports System.Net.Mail
Imports System.Text
 Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button2.Click
        Dim email As New MailMessage
        Dim smtp As SmtpClient
        smtp = New SmtpClient("smtp.yandex.ru")
        smtp.Port = 587
        smtp.Credentials = New Net.NetworkCredential("admin@yandex.ru", "")
        email.From = New MailAddress("admin@yandex.ru")
        email.To.Add(New MailAddress("SEVlasova@yandex.ru"))
        email.Body = "Почта"
        email.Subject = "Почта"
        email.Attachments.Add(New System.Net.Mail.Attachment("D:\files.txt"))
        smtp.Send(email)
     End Sub
У меня есть файл xml формата(Файл прикреплю):
XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<Settings>
  <Username>admin@yandex.ru</Username>
  <Password>admin</Password>
  <Smtp>smtp.yandex.ru</Smtp>
  <SmtpPort>587</SmtpPort>
<mailTo>
<Address>ASSidorov@yandex.ru</Address>
</mailTo>
<mailTo>
<Address>ANListov@yandex.ru</Address>
</mailTo>
<mailСС>
<Address>AVKolov@yandex.ru</Address>
</mailСС>
<mailСС>
<Address>MASomova@yandex.ru</Address>
</mailСС>
<mailBody>Добрый день</mailBody>
</Settings>
Необходимо что бы для отправки почты программа брала настройки полностью отсюда. Файл может изменятся (Могут добавляться адреса как и для отправки сообщения получателю, так и копии, так же может меняться текст письма.
Все это должно работать при нажатии на кнопку.
Уважаемые форумчане. очень прошу помощи в написании кода. Буду очень благодарен за вашу неоценимую помощь и потраченное время. Заранее спасибо!
Вложения
Тип файла: 7z settings.7z (333 байт, 2 просмотров)
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
29.05.2017, 10:26
Ответы с готовыми решениями:

Парсинг .xml файла с настройками
Имеется .xml файл в котором предполагается хранить всякие разные настройки типа &lt;?xml version=&quot;1.0&quot;...

Отправка файла Excel на почты сотрудников
Всем привет, Использовал Eplus при скачке таблицы из Web. Отлично, все получилось. Сейчас хочется сделать, чтобы таблица...

Отправка почты средствами Telnet с помощью bat-файла
Здравствуйте. Подскажите, пожалуйста, возможно ли это вообще? Если возможно, то каким образом? Создаю bat файл со следующим содержанием: ...

9
1548 / 1521 / 325
Регистрация: 03.10.2012
Сообщений: 1,551
29.05.2017, 15:45
Вот так, например, можно получить данные из вашего файла. Вам останется только подставить в код отправки почты
эти переменные вместо соответствующих строк.
VB.NET
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Dim xmlDoc As XDocument = XDocument.Load("путь.xml")
 
        Dim userName = xmlDoc.Root...<Username>.Value
        Dim password = xmlDoc.Root...<Password>.Value
        Dim smtpClient = xmlDoc.Root...<Smtp>.Value
        Dim smtpPort = xmlDoc.Root...<SmtpPort>.Value
        Dim body = xmlDoc.Root...<mailBody>.Value
 
        MsgBox(String.Join(vbCrLf, {userName, password, smtpClient, smtpPort, body}))
 
        Dim mailTo = From s In xmlDoc.Root...<mailTo> Select s.Value
        For Each el In mailTo
            ListBox1.Items.Add(el)
        Next
 
        Dim mailCC = From s In xmlDoc.Root...<mailСС> Select s.Value
        For Each el In mailCC
            ListBox1.Items.Add(el)
        Next
3
0 / 0 / 0
Регистрация: 29.05.2017
Сообщений: 91
29.05.2017, 16:24  [ТС]
MrCrown, то есть вот так:
VB.NET
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
Dim xmlDoc As XDocument = XDocument.Load("путь.xml")
 
        Dim userName = xmlDoc.Root...<Username>.Value
        Dim password = xmlDoc.Root...<Password>.Value
        Dim smtpClient = xmlDoc.Root...<Smtp>.Value
        Dim smtpPort = xmlDoc.Root...<SmtpPort>.Value
        Dim body = xmlDoc.Root...<mailBody>.Value
 
        MsgBox(String.Join(vbCrLf, {userName, password, smtpClient, smtpPort, body}))
 
        Dim mailTo = From s In xmlDoc.Root...<mailTo> Select s.Value
        For Each el In mailTo
            ListBox1.Items.Add(el)
        Next
 
        Dim mailCC = From s In xmlDoc.Root...<mailСС> Select s.Value
        For Each el In mailCC
            ListBox1.Items.Add(el)
        Next
 
Dim email As New MailMessage
        Dim smtp As SmtpClient
        smtp = New SmtpClient(smtpClient)
        smtp.Port = smtpPort
        smtp.Credentials = New Net.NetworkCredential(userName, password)
        email.From = New MailAddress("admin@yandex.ru")
        email.To.Add(New MailAddress(mailTo))
        email.CC.Add(New MailAddress(mailСС))
        email.Body = body
        email.Subject = "Почта"
        email.Attachments.Add(New System.Net.Mail.Attachment("D:\files.txt"))
        smtp.Send(email)
А можно список почтовых адресов тоже в переменную записать?
0
Лень — мое второе и
 Аватар для Orlangur
3228 / 2416 / 687
Регистрация: 28.11.2014
Сообщений: 3,601
Записей в блоге: 3
29.05.2017, 16:29
kron_1, они находятся в listbox, надо циклом пройтись по нему, а каждый элемент этого listbox и будет адрес
1
0 / 0 / 0
Регистрация: 29.05.2017
Сообщений: 91
30.05.2017, 09:43  [ТС]
Orlangur1991, я где-то не правильно код сделал? исправте, пожалуйста.

Добавлено через 16 часов 35 минут
MrCrown, Orlangur1991, вот эти две строчки у меня подсвечивает. Видимо про них говорил Orlangur1991, что нужно их переберать в цикле, но я не знаю как. пожалуйста помогите.
VB.NET
1
2
        email.To.Add(New MailAddress(mailTo))
        email.CC.Add(New MailAddress(mailСС))
Добавлено через 31 минуту
как то вот так:
VB.NET
1
2
3
For Each m As MailAddress In mailTo
            email.To.Add(m)
        Next
но тоже не верно
0
Лень — мое второе и
 Аватар для Orlangur
3228 / 2416 / 687
Регистрация: 28.11.2014
Сообщений: 3,601
Записей в блоге: 3
30.05.2017, 10:21
kron_1,
VB.NET
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
  Dim xmlDoc As XDocument = XDocument.Load("C:\Users\administrator\Desktop\settings.xml")
 
        Dim userName = xmlDoc.Root...<Username>.Value
        Dim password = xmlDoc.Root...<Password>.Value
        Dim smtpClient = xmlDoc.Root...<Smtp>.Value
        Dim smtpPort = xmlDoc.Root...<SmtpPort>.Value
        Dim body = xmlDoc.Root...<mailBody>.Value
 
        ' MsgBox(String.Join(vbCrLf, {userName, password, smtpClient, smtpPort, body}))
 
        Dim mailTo = From s In xmlDoc.Root...<mailTo> Select s.Value
        For Each el In mailTo
            ListBox1.Items.Add(el)
        Next
 
        Dim mailCC = From s In xmlDoc.Root...<mailСС> Select s.Value
        For Each el In mailCC
            ListBox1.Items.Add(el)
        Next
 
 
 
        Dim email As New MailMessage
        Dim smtp As SmtpClient
        smtp = New SmtpClient(smtpClient)
        smtp.Port = smtpPort
        smtp.Credentials = New Net.NetworkCredential(userName, password)
        email.From = New MailAddress(userName)
 
        For i = 0 To ListBox1.Items.Count - 1
            email.To.Add(New MailAddress(ListBox1.Items.Item(i)))
        Next
        email.Body = body
        email.Subject = "Почта"
        Try
            'email.Attachments.Add(New System.Net.Mail.Attachment("D:\files.txt"))
            smtp.Send(email)
        Catch ex As Exception
            MsgBox(ex.Message, MsgBoxStyle.Critical)
        End Try
1
0 / 0 / 0
Регистрация: 29.05.2017
Сообщений: 91
30.05.2017, 10:50  [ТС]
Orlangur1991, а можно как-нибудь обойтись без listbox в этой все ситуации?
то есть считывать с файла не в listbox, а в какую-нибудь переменную?
и потом с этой переменной считать адреса для отправки??

Добавлено через 11 минут
Хочу что бы на форме была только одна кнопка и все
0
Лень — мое второе и
 Аватар для Orlangur
3228 / 2416 / 687
Регистрация: 28.11.2014
Сообщений: 3,601
Записей в блоге: 3
30.05.2017, 10:55
kron_1, можно вот так, не переделывая код почти
VB.NET
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
Dim mails As New ListBox
    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        Dim xmlDoc As XDocument = XDocument.Load("C:\Users\administrator\Desktop\settings.xml")
 
        Dim userName = xmlDoc.Root...<Username>.Value
        Dim password = xmlDoc.Root...<Password>.Value
        Dim smtpClient = xmlDoc.Root...<Smtp>.Value
        Dim smtpPort = xmlDoc.Root...<SmtpPort>.Value
        Dim body = xmlDoc.Root...<mailBody>.Value
 
        ' MsgBox(String.Join(vbCrLf, {userName, password, smtpClient, smtpPort, body}))
 
        Dim mailTo = From s In xmlDoc.Root...<mailTo> Select s.Value
        For Each el In mailTo
            mails.Items.Add(el)
        Next
 
        Dim mailCC = From s In xmlDoc.Root...<mailСС> Select s.Value
        For Each el In mailCC
            mails.Items.Add(el)
        Next
 
 
 
        Dim email As New MailMessage
        Dim smtp As SmtpClient
        smtp = New SmtpClient(smtpClient)
        smtp.Port = smtpPort
        smtp.Credentials = New Net.NetworkCredential(userName, password)
        email.From = New MailAddress(userName)
 
        For i = 0 To mails.Items.Count - 1
            email.To.Add(New MailAddress(mails.Items.Item(i)))
        Next
        email.Body = body
        email.Subject = "Почта"
        Try
            'email.Attachments.Add(New System.Net.Mail.Attachment("D:\files.txt"))
            smtp.Send(email)
        Catch ex As Exception
            MsgBox(ex.Message, MsgBoxStyle.Critical)
        End Try
1
0 / 0 / 0
Регистрация: 29.05.2017
Сообщений: 91
30.05.2017, 11:03  [ТС]
Orlangur1991, простите, что засыпаю вопросами, но этот последний. А возможно это все в консольном приложении осуществить? видел здесь подобную тему, но ответа там не нашел.
0
Лень — мое второе и
 Аватар для Orlangur
3228 / 2416 / 687
Регистрация: 28.11.2014
Сообщений: 3,601
Записей в блоге: 3
30.05.2017, 11:50
kron_1,
VB.NET
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
Imports System.Net.Mail
 
Module Module1
 
    Sub Main()
        Dim mails As New List(Of String)
 
        Dim xmlDoc As XDocument = XDocument.Load("C:\Users\administrator\Desktop\settings.xml")
 
        Dim userName = xmlDoc.Root...<Username>.Value
        Dim password = xmlDoc.Root...<Password>.Value
        Dim smtpClient = xmlDoc.Root...<Smtp>.Value
        Dim smtpPort = xmlDoc.Root...<SmtpPort>.Value
        Dim body = xmlDoc.Root...<mailBody>.Value
 
        ' MsgBox(String.Join(vbCrLf, {userName, password, smtpClient, smtpPort, body}))
 
        Dim mailTo = From s In xmlDoc.Root...<mailTo> Select s.Value
        For Each el In mailTo
            mails.Add(el)
        Next
 
        Dim mailCC = From s In xmlDoc.Root...<mailСС> Select s.Value
        For Each el In mailCC
            mails.Add(el)
        Next
 
        Dim email As New MailMessage
        Dim smtp As SmtpClient
        smtp = New SmtpClient(smtpClient)
        smtp.Port = smtpPort
        smtp.Credentials = New Net.NetworkCredential(userName, password)
        email.From = New MailAddress(userName)
        For i = 0 To mails.Count - 1
            email.To.Add(New MailAddress(mails.Item(i)))
        Next
        email.Body = body
        email.Subject = "Почта"
        Try
            'email.Attachments.Add(New System.Net.Mail.Attachment("D:\files.txt"))
            smtp.Send(email)
        Catch ex As Exception
            Console.Write(ex.Message)
        End Try
    End Sub
 
End Module
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
30.05.2017, 11:50
Помогаю со студенческими работами здесь

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

Отправка xml файла методом POST
В классе XmlWriter создаётся файл. using (var xmlwrite = XmlWriter.Create( ...

Отправка почты: "необработанное исключение отправки почты в system.Dll"
подскажите - вот пример на C#, но он мне пишет &quot;необработанное исключение отправки почты в system.dll&quot; using System; using...

Отправка почты
Здравствуйте. Подскажите пожалуйста функцию отправки почты через JS. Добавлено через 14 минут Например в PHP это функция mail.

Отправка почты
Умоляю срочно!


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
10 пpимет, которые всегда сбываются
Maks 31.03.2026
1. Чтобы, наконец, пришла маршрутка, надо закурить. Если сигарета последняя, маршрутка придет еще до второй затяжки даже вопреки расписанию. 2. Нaдоели зима и снег? Не надо переезжать. Достаточно. . .
Перемещение выделенных строк ТЧ из одного документа в другой
Maks 31.03.2026
Реализация из решения ниже выполнена на примере нетипового документа "ВыдачаОборудованияНаСпецтехнику" с единственной табличной частью "ОборудованиеИКомплектующие" разработанного в конфигурации КА2. . . .
Functional First Web Framework Suave
DevAlt 30.03.2026
Sauve. IO Апнулись до NET10. Из зависимостей один пакет, работает одинаково хорошо как в режиме проекта так и в интерактивном режиме. из сложностей - чисто функциональный подход. Решил. . .
Автоматическое создание документа при проведении другого документа
Maks 29.03.2026
Реализация из решения ниже выполнена на нетиповых документах, разработанных в конфигурации КА2. Есть нетиповой документ "ЗаявкаНаРемонтСпецтехники" и нетиповой документ "ПланированиеСпецтехники". В. . .
Настройка движения справочника по регистру сведений
Maks 29.03.2026
Решение ниже реализовано на примере нетипового справочника "ТарифыМобильнойСвязи" разработанного в конфигурации КА2, с целью учета корпоративной мобильной связи в коммерческом предприятии. . . .
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru