• XSS.stack #1 – первый литературный журнал от юзеров форума

Отправка мыла

Ags1of

RAM
Пользователь
Регистрация
26.11.2021
Сообщения
122
Реакции
1
Короче, проблема такова: есть спамер для малы(почта), но, после нескольких минут использования, сообщения начинают идти в спам. Мне надо как-то сделать так, чтобы юзались прохи. Парс прокси и распределение их я сам сделаю, помогите реализовать код, чтобы туда подставлялся прокси найденный и с него отправлялось нужное сообщение.
 
Короче, проблема такова: есть спамер для малы(почта), но, после нескольких минут использования, сообщения начинают идти в спам. Мне надо как-то сделать так, чтобы юзались прохи. Парс прокси и распределение их я сам сделаю, помогите реализовать код, чтобы туда подставлялся прокси найденный и с него отправлялось нужное сообщение.
Если что, ЯП - C#
 
Ну так кидай код, что мы там можем гадать что да и как у тебя, мы же не Ванги.
 
C#:
       private async void button2_Click(object sender, EventArgs e)
        {
            string login = textBox2.Text;
            string password = textBox3.Text;
            string Header = textBox1.Text;
            string path_to_db = textBox4.Text;

            string contetnt = File.ReadAllText(path_to_db);
            string[] mail_db = contetnt.Split(',', ':', ';');

            foreach (var el in mail_db)
            {
                MessageBox.Show(el);
            }

            //try
            //{
                //for (int i = 0; i < mail_db.Length; i++)
                //{
                    //var emailMessage = new MimeMessage();

                    //emailMessage.From.Add(new MailboxAddress(Header, login));
                    //emailMessage.To.Add(new MailboxAddress("", mail_db[i]));
                    //emailMessage.Subject = "Чел";
                    //emailMessage.Body = new TextPart(MimeKit.Text.TextFormat.Html)
                    //{
                    //    Text = "Any Text"
                    //};

                    //using (var client = new SmtpClient())
                    //{
                    //    await client.ConnectAsync("smtp.gmail.com", 587, true);
                    //    await client.AuthenticateAsync(login, password);
                    //    await client.SendAsync(emailMessage);
                    //    await client.DisconnectAsync(true);

                    //}

                try
                {
                    MessageBox.Show("Спам начат!");
                    for (int i = 0; i < mail_db.Length; i++)
                    {
                        MailMessage mail = new MailMessage();
                        System.Net.Mail.SmtpClient cs = new System.Net.Mail.SmtpClient("smtp.gmail.com");

                        mail.From = new MailAddress(login);
                        mail.To.Add(mail_db[i]);
                        mail.Subject = Header;
                           
                        mail.Body = "ЧТО-ТО";

                        cs.Port = 587;
                        cs.Credentials = new NetworkCredential(login, password);
                        cs.EnableSsl = true;
                        cs.Send(mail);

                        if (i == mail_db.Length)
                        {
                            MessageBox.Show("Спам окончен!");
                        }
                    }
                }
                catch (Exception exc)
                {
                    Console.WriteLine("Errore Code" + exc.Message);
                }
                //}
            //}

            //catch
            //{
            //    MessageBox.Show("НЕ");
            //}
        }
Вот, собственно говоря, сам код. Мне надо, чтобы через определённое кол-во отправок, менялся прокси, с которого отправляется сообщение, допустим, это будет какой-то counter, когда он будет достигать 10, допустим, то будет меняться прокси. Вот и ещё проблема в том, что всё херово с сервисами. Сообщения не отправляются. Ну, это, скорее всего, из-за того, что я что-то неправильно делаю, но, когда я юзаю imap client или Smtp client, то можно отправлять сообщения только через google почту, яндекс, мэйл не пускает сообщения. Может поможете ещё с реализацией того, чтобы можно было войти в любой почтовый клиент, например google, yandex yahoo и тд. Помогите, чем сможете. Новокек в этой теме. Буду очень благодарен
 
Вот тебе класс для отправки сообщений:
C#:
namespace ConsoleApp1
{
    using System;
    using System.IO;
    using System.Net;
    using System.Net.Mail;
    using System.Net.Security;
    using System.Security.Cryptography.X509Certificates;
    using System.Text;

    public static class EmailSender
    {
        // EmailSender.Inizialize(Email_From, "Fake", "YouPassword", Email_To, "RandomText", "mail.ru", 587, 12000);
        public static void Inizialize(string login, string displayname, string password, string to, string logo, string server, int port, int time)
        {
            using MailMessage mess = new();
            mess.From = new MailAddress(login, displayname, Encoding.UTF8); // Адрес отправителя, Отображаемое имя ( за место почты )
            mess.To.Add(new MailAddress(to, null, Encoding.UTF8)); // Адрес получателя
            mess.Subject = Environment.UserName; // Тема сообщения
            mess.SubjectEncoding = Encoding.UTF8; // Кодировка UTF-8 для темы сообщения
            mess.BodyEncoding = Encoding.UTF8; // Кодировка UTF-8 для тела сообщения
            mess.Body = logo; // Текст сообщения
            mess.IsBodyHtml = true; // Сообщение в формате html
            mess.DeliveryNotificationOptions = DeliveryNotificationOptions.OnFailure; // Уведомление если доставка неудачна

            using SmtpClient client = new($"smtp.{server}", port); // Задаём параметры сервера и порта для Smtp клиента
            // Подключаем SSL
            ServicePointManager.ServerCertificateValidationCallback += ValidateRC;
            ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls | SecurityProtocolType.Ssl3;

            client.EnableSsl = true; // Включаем SSL шифрование
            client.DeliveryMethod = SmtpDeliveryMethod.Network; // Обработка сообщения через Smtp сервер
            client.UseDefaultCredentials = false; // Это просто флаг, указывающий SMTPClient использовать учетные данные, предоставленные для свойства Credentials.
            client.Timeout = time; // Ожидание перед отправкой Client.Send
          
            NetworkCredential networkCredential = new(login, password);
            // Тут подключаются прокси
            var webProxy = new WebProxy(new Uri("http://192.168.30.8:3128"))
            {
                UseDefaultCredentials = false,
                Credentials = networkCredential
            };
            client.Credentials = networkCredential; // Авторизация в почте
            try
            {
                client.Send(mess); // Отправка сообщения на почту
            }
            catch (Exception sendex)
            {
                File.WriteAllText("Error_SendMessage.txt", $"{sendex.Message}\r\n");
            }
        }

        private static bool ValidateRC(object sender, X509Certificate cert, X509Chain chain, SslPolicyErrors error) => error == SslPolicyErrors.None;
    }
}
Думаю допрёшь как дальше сделать.
 
Вот тебе класс для отправки сообщений:
C#:
namespace ConsoleApp1
{
    using System;
    using System.IO;
    using System.Net;
    using System.Net.Mail;
    using System.Net.Security;
    using System.Security.Cryptography.X509Certificates;
    using System.Text;

    public static class EmailSender
    {
        // EmailSender.Inizialize(Email_From, "Fake", "YouPassword", Email_To, "RandomText", "mail.ru", 587, 12000);
        public static void Inizialize(string login, string displayname, string password, string to, string logo, string server, int port, int time)
        {
            using MailMessage mess = new();
            mess.From = new MailAddress(login, displayname, Encoding.UTF8); // Адрес отправителя, Отображаемое имя ( за место почты )
            mess.To.Add(new MailAddress(to, null, Encoding.UTF8)); // Адрес получателя
            mess.Subject = Environment.UserName; // Тема сообщения
            mess.SubjectEncoding = Encoding.UTF8; // Кодировка UTF-8 для темы сообщения
            mess.BodyEncoding = Encoding.UTF8; // Кодировка UTF-8 для тела сообщения
            mess.Body = logo; // Текст сообщения
            mess.IsBodyHtml = true; // Сообщение в формате html
            mess.DeliveryNotificationOptions = DeliveryNotificationOptions.OnFailure; // Уведомление если доставка неудачна

            using SmtpClient client = new($"smtp.{server}", port); // Задаём параметры сервера и порта для Smtp клиента
            // Подключаем SSL
            ServicePointManager.ServerCertificateValidationCallback += ValidateRC;
            ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls | SecurityProtocolType.Ssl3;

            client.EnableSsl = true; // Включаем SSL шифрование
            client.DeliveryMethod = SmtpDeliveryMethod.Network; // Обработка сообщения через Smtp сервер
            client.UseDefaultCredentials = false; // Это просто флаг, указывающий SMTPClient использовать учетные данные, предоставленные для свойства Credentials.
            client.Timeout = time; // Ожидание перед отправкой Client.Send
        
            NetworkCredential networkCredential = new(login, password);
            // Тут подключаются прокси
            var webProxy = new WebProxy(new Uri("http://192.168.30.8:3128"))
            {
                UseDefaultCredentials = false,
                Credentials = networkCredential
            };
            client.Credentials = networkCredential; // Авторизация в почте
            try
            {
                client.Send(mess); // Отправка сообщения на почту
            }
            catch (Exception sendex)
            {
                File.WriteAllText("Error_SendMessage.txt", $"{sendex.Message}\r\n");
            }
        }

        private static bool ValidateRC(object sender, X509Certificate cert, X509Chain chain, SslPolicyErrors error) => error == SslPolicyErrors.None;
    }
}
Думаю допрёшь как дальше сделать.
Бесконечно благодарен. Попробую сделать. Но такой вопрос: По коду видно, что я сам должен задавать сервис и порты. Где можно найти как раз"правильное название" сервиса и правильный порт? И это точно работает со всех сервисов? Также был бы ещё больше благодарен, если подскажете, где вы брали всю эту информацию, где есть документация или что-то вспомогательное к работе с почтой
 
где вы брали всю эту информацию, где есть документация или что-то вспомогательное к работе с почтой
https://metanit.com/sharp/net/8.1.php
https://docs.microsoft.com/ru-ru/dotnet/api/system.net.mail.smtpclient?view=net-6.0
https://docs.microsoft.com/ru-ru/dotnet/api/system.net.mail.mailmessage?view=net-6.0
Так же полезно stackoverflow и cyberforum
Где можно найти как раз"правильное название" сервиса и правильный порт?
Во всемирной паутине)) Смотри название сервиса и порт к нему по документации.
https://habr.com/ru/sandbox/72340/
 


Напишите ответ...
  • Вставить:
Прикрепить файлы
Верх