Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
6 / 6 / 0
Регистрация: 23.12.2015
Сообщений: 227

Отправление только одного письма

30.11.2018, 12:01. Показов 619. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
доброго времени суток, можете подсказать как сделать, программа проверяет свободное место на жестких дисках и отправляет сообщение на почту, проблема в том , что от каждого жесткого диска приходит отдельное письмо, подскажите как исправить.
Примерно так задумывалось (Не хватает места: C:\\ , D:\\,E:\\) или если хватает (Места хватает.)

C#
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
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.IO;
using System.Linq;
using System.Net;
using System.Net.Mail;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
 
namespace DriveT
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
 
        private void Form1_Load(object sender, EventArgs e)
        {
 
            DriveInfo[] allDrives = DriveInfo.GetDrives();
            foreach (DriveInfo MyDriveInfo in allDrives)
            {
                if (MyDriveInfo.IsReady == true)
                {
 
                    //DriveInfo di = new DriveInfo(@"c:\");
                    double Ffree = (MyDriveInfo.AvailableFreeSpace / 1024) / 1024;
                    //MessageBox.Show(Ffree.ToString("#,##") + " MB");
                    //MessageBox.Show("drive",MyDriveInfo.Name);
                    int pool = 15000;
 
                    //Адрес SMTP-сервера
                    String smtpHost = "EE@email.ru";
                    //Порт SMTP-сервера
                    int smtpPort = 25;
                    //Логин
                    String smtpUserName = "email2@email.ru";
                    //Пароль
                    String smtpUserPass = "";
                    if (Ffree < pool)
                    {
                        //Создание подключения
                        SmtpClient client = new SmtpClient(smtpHost, smtpPort);
                        client.Credentials = new NetworkCredential(smtpUserName, smtpUserPass);
 
                        //Адрес для поля "От"
                        String msgFrom = "email2@email.ru";
                        //Адрес для поля "Кому" (адрес получателя)
                        String msgTo = "email@email.ru";
                        //Тема письма
                        String msgSubject = "Письмо от C#";
                        //Текст письма
                        String msgBody = "Привет!\r\n\r\nЭто тестовое письмо  \r\n\r\n--\r\n :-)\r\n\r" + MyDriveInfo.Name + Ffree.ToString("#,##" + "MB");
 
                        //Создание сообщения
                        MailMessage message = new MailMessage(msgFrom, msgTo, msgSubject, msgBody);
 
                        try
                        {
                            //Отсылаем сообщение
                            client.Send(message);
                        }
                        catch (SmtpException ex)
                        {
                            //В случае ошибки при отсылке сообщения можем увидеть, в чем проблема
                            MessageBox.Show("error");
                        }
                    }
                    else
                    {
                        //Создание подключения
                        SmtpClient client = new SmtpClient(smtpHost, smtpPort);
                        client.Credentials = new NetworkCredential(smtpUserName, smtpUserPass);
 
                        //Адрес для поля "От"
                        String msgFrom = "email2@email.ru";
                        //Адрес для поля "Кому" (адрес получателя)
                        String msgTo = "email@email.ru";
                        //Тема письма
                        String msgSubject = "Письмо";
                        //Текст письма
                        String msgBody = "Все хорошо!\r\n\r\n" + MyDriveInfo.Name + Ffree.ToString("#,##" + "MB");
 
                        //Создание сообщения
                        MailMessage message = new MailMessage(msgFrom, msgTo, msgSubject, msgBody);
 
                        try
                        {
                            //Отсылаем сообщение
                            client.Send(message);
                        }
                        catch (SmtpException ex)
                        {
                            //В случае ошибки при отсылке сообщения можем увидеть, в чем проблема
                            MessageBox.Show("error");
                        }
 
                    }
                }
            }
            //MessageBox.Show(Ffree.ToString("#,##") + " MB");
 
            Close();
        }
    
    }
}
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
30.11.2018, 12:01
Ответы с готовыми решениями:

Запуск только одного экземпляра приложения
Вобщем есть вот такой вот код using System.Threading; using System.Diagnostics; using System.Text.RegularExpressions; namespace...

Программное отправление письма
У меня офис 2003. При попытке отправить письмо через .Send выкидывает окно с предупреждением о возможном вирусе, пять секунд думает, а...

Отправление письма с правильной кодировкой
Приветствую уважаемые гуру! Помогите решить проблему, я не кодер, но мне нужно решить маленькую проблему. Имеется код отправки письма с...

2
196 / 41 / 24
Регистрация: 24.02.2013
Сообщений: 231
30.11.2018, 15:47
У вас цикл проходит по каждому диску.
C#
1
foreach (DriveInfo MyDriveInfo in allDrives)
Возможно стоит занести информацию о дисках в отдельный list, потом преобразовать в строку и отправить
C#
1
2
3
4
5
6
7
8
9
10
11
var listHDDSize = new List<string>();
                DriveInfo[] allDrives = DriveInfo.GetDrives();
                foreach (DriveInfo MyDriveInfo in allDrives)
                {
                    if (MyDriveInfo.IsReady == true)
                    {
                        double Ffree = (MyDriveInfo.AvailableFreeSpace / 1024) / 1024;
                        listHDDSize.Add($"{MyDriveInfo} {Ffree.ToString()}");
                    }
                }
            string message = string.Join(",", listHDDSize.ToArray());
1
6 / 6 / 0
Регистрация: 23.12.2015
Сообщений: 227
03.12.2018, 10:59  [ТС]
Решил это так)

C#
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
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.IO;
using System.Linq;
using System.Net;
using System.Net.Mail;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
 
namespace DriveT
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
 
        private void Form1_Load(object sender, EventArgs e)
        {
            double free = 0;
            double a = 0;
            string Vol = "";
 
            DriveInfo[] allDrives = DriveInfo.GetDrives();
 
 
            //Адрес SMTP-сервера
            String smtpHost = "mail.email.ru";
            //Порт SMTP-сервера
            int smtpPort = 25;
            //Логин
            String smtpUserName = "NameServer@email.ru";
            //Пароль
            String smtpUserPass = "";
            ///Создание подключения
            SmtpClient client = new SmtpClient(smtpHost, smtpPort);
            client.Credentials = new NetworkCredential(smtpUserName, smtpUserPass);
            //Адрес для поля "От"
            String msgFrom = "NameServer@email.ru";
            //Адрес для поля "Кому" (адрес получателя)
            String msgTo = "email@email.ru";
            //Тема письма
            String msgSubject = "Проверка Дисков";
           
 
            int pool = 15000;
 
            foreach (DriveInfo MyDriveInfo in allDrives)
            {
                if (MyDriveInfo.IsReady == true)
                {
 
                    free = MyDriveInfo.AvailableFreeSpace;
                    a = (free / 1024) / 1024;
                    Vol += MyDriveInfo.Name + ": " + a.ToString("#.##") + "" + "MB" + Environment.NewLine;
                    
                }
 
                
            }
            //текст письма
            String msgBody = "OK"; //+ Vol;//MyDriveInfo.Name + a.ToString("#,##" + "MB");
            String msq2Body = "Заканчивается свободное место :" + "\r\n\r" + Vol;
 
            if (a < pool)
                    {
                        //Создание сообщения
                        MailMessage message = new MailMessage(msgFrom, msgTo.Replace(";",","), msgSubject, msq2Body);
 
                        try
                        {
                            //Отсылаем сообщение
                            client.Send(message);
                        }
                        catch (SmtpException ex)
                        {
                            //В случае ошибки при отсылке сообщения можем увидеть, в чем проблема
                            MessageBox.Show("error");
                        }
                    }
 
                    else
                    {
                        //Создание сообщения
                        MailMessage message = new MailMessage(msgFrom, msgTo, msgSubject, msgBody);
 
                        try
                        {
                            //Отсылаем сообщение
                            client.Send(message);
                        }
                        catch (SmtpException ex)
                        {
                            //В случае ошибки при отсылке сообщения можем увидеть, в чем проблема
                            MessageBox.Show("error");
                        }
 
                    }
                
            
            
 
            Close();
        }
    
    }
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
03.12.2018, 10:59
Помогаю со студенческими работами здесь

Отправление письма при входе в систему ubuntu
Здравствуйте, никак не могу понять как сделать так чтобы, когда пользователь заходит в систему, администратору пришло письмо на почту с...

Как сделать автоматическое отправление письма, при переходе на другую страницу
Добрый вечер, уважаемые форумчане! Подскажите пожалуйста как сделать, чтобы при нажатии на кнопку ЗАКАЗАТЬ: 1. отправлялось письмо...

Не Приходят Письма С Одного Домена
Добрый день! Прошу помощи. Не приходят письма с одного домена, в логах видно следующее: 08.07.2014 18:22:25 SMTP Server: Message...

Отправка одного письма нескольким адресатам.
Хочу сделать отправку писем нескольким адресатам(не больше 15).Делаю так: InternetAddress toAddress = {new InternetAddress()}; ...

Postfix письма от одного ящика приходят по многу раз
одно письмо приходит по многу, почта отдела если отправляет письмо то оно приходит по многу раз, помогите вчем может быть проблема,...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru