Класс отправки сообщений по E-mail - Форум Cheat-Master.ru
  • Страница 1 из 1
  • 1
Модератор форума: Sanoxxx, Alowir  
Класс отправки сообщений по E-mail
Mewex Дата: Понедельник, 10.04.2017, 21:59 | Сообщение # 1
STEAM SELLER
Сообщений: 475
Статус: Offline
Класс Mail предназначен для того что бы отправить сообщение на E-Mail сервер при помощи протокола SMTP (Simple Mail Transfer Protocol).

Конструкция

public Mail (string Host, int Port, string User, string Password, string From, string To, string CC = “”, int CodePage = 20866);

Проверяет параметры соединения с сервером, который позволяет отправлять сообщения по протоколу SMTP.

Параметры:

Host – name или IP сервера;
Port – Порт сервера;
User – имя учётки;
Password – пароль учётки;
From – адрес отправителя почты;
To – адрес получателя почты;
CC – список адресов получателей копии электронной почты, если список пуст, то передается пустая строка;
CodePage – определяет данную кодировку параметров From, To, по умолчанию 20866 (koi8-r).
Формат строки представления адреса получателя и отправителя:

“<E-Mail>[,<DisplayName>]”
Формат строки представления, список получателей копии электронной почты:

“[<E-Mail[,<E-Mail>, … , <E-Mail>]”

где

E-Mail – адрес почты;
DisplayName - отображаемое имя.

Методы

public bool MailSend (string Subject, string Body, string AttachFile)

Отправляет введённое сообщение на сервер SMTP, для доставки получателем.

Параметры:

Body – сообщение;
Subject – тема при отправке сообщения;
AttachFile – полное имя и путь до вложенного файла в сообщение или пустая строка, если его нет.

Результат:

True – сообщение успешно отправлено или False, если произошла ошибка.
public void MailClose()

Закрываем соединение с сервером по протоколу SMTP.
Освобождаем все ресурсы.

Свойства

public string Err { get; }

Возвращаем строку с ошибкой, возникшей при отправке, или строку без значения, если ошибок нет.

Использование класса

Код
//****************************************
// Пример использования класса Mail
//****************************************

using System;
using SM;

...

// создаем объект

Mail oSM = new Mail("67.13.256.48", 25, "ssk/cnt_notif", "adm",
"Sidorov@fsk.sdd,Сидоров Иван Иванович",
"Petrov@fsk.sdd,Петров Алексей Николаевич");

// отправляем сообщение

if (oSM.MailSend("Тест", "Тестовое сообщение", "d:\test.txt"))
Console.WriteLine("Сообщение отправлено");
else
Console.WriteLine("Ошибка! " + oSM.Err);

// закрываем соединение и освобождаем занятые ресурсы
oSM.MailClose();
...

Код класса
Код
using System;
using System.Net;
using System.Net.Mail;
using System.Net.Mime;

namespace SM {

// Класс для отправки сообщений на E-Mail,
// с помощью протокола SMTP (Simple Mail Transfer Protocol)
public class Mail {
  private SmtpClient Client;
  private MailMessage Message;
  private string Error;

  //*************************************************************
  //* Function: Mail
  //* Notes: Конструктор класса
  //*

  public Mail (string Host, int Port, string User, string Password,
               string From, string To, string CC = "", int CodePage = 20866) {
    int Index = 0;
    MailAddress from;
    MailAddress to;
    NetworkCredential Credentials = new NetworkCredential(User, Password);

    this.Client = new SmtpClient(Host, Port);
    this.Client.Credentials = Credentials;
    Index = From.IndexOf(',');
    if (Index >= 0) {
      from = new MailAddress(From.Substring(0, Index),
                             From.Substring(Index + 1),
                             System.Text.Encoding.GetEncoding(CodePage));
    }
    else {
      from = new MailAddress(From);
    }
    Index = To.IndexOf(',');
    if (Index >= 0) {
      to = new MailAddress(To.Substring(0, Index),
                           To.Substring(Index + 1),
                           System.Text.Encoding.GetEncoding(CodePage));
    }
    else {
      to = new MailAddress(To);
    }
    this.Message = new MailMessage(from, to);
    if (!String.IsNullOrEmpty(CC)) {
      this.Message.CC.Add(CC);
    }
    this.Error = "";
  }

  //*** End of Mail ***********

  //*************************************************************
  //* Function: MailSend
  //* Notes: Отправляет указанное сообщение Body на сервер SMTP для
  //*        доставки получателем.
  //           Subject    - тема сообщения.
  //*          AttachFile - полное имя вложенного файла в сообщение или
  //*                       пустая строка, если его нет.
  //* Функция возвращает true, если сообщение отправлено успешно или false,
  //* в любом другом случае.
  //*

  public bool MailSend (string Subject, string Body, string AttachFile) {
    Attachment data = new Attachment(AttachFile, MediaTypeNames.Text.Plain);

    this.Error = "";
    this.Message.Subject = Subject;
    this.Message.Body = Body;
    this.Message.Attachments.Add(data);
    try {
      this.Client.Send(Message);
    }
    catch (Exception e) {
      this.Error = e.Message;
      return false;
    }
    this.Message.Attachments.Clear();
    return true;
  }

  //*** End of MailSend ***********

  //*************************************************************
  //* Function: MailClose
  //* Notes: Закрывает текущее соединение с почтовым сервером по протоколу SMTP.
  //*        Освобождает все занятые ресурсы.
  //*

  public void MailClose () {
    this.Client = null;
    this.Message.Dispose();
    this.Message = null;
  }

  //*** End of MailClose ***********

  // получить ошибку при передачи сообщения
  public string Err {
    get {
      return this.Error;
    }
  }

}

}

Добавлено (10.04.2017, 21:59)
---------------------------------------------
Ап

  • Страница 1 из 1
  • 1
Поиск:
Статистика Форума
Лучшие пользователи
Admin [39113]

GеNius [7210]

[CM]Russel [5557]

kenlo763 [4952]

[CM]AGRESSOR [4639]

Snake_Firm [4452]

Сэс [4416]

Artem_Buero [4223]

[CM]Durman [3204]

[CM]Рафаэль [3080]

iMaddy [2855]

sky_Woker [2854]

getrekt [2745]

Новые пользователи
PUPS12124 [02:09]

Bioksit [00:15]

Dafdaf [23:27]

ячеченец [21:00]

balbesbizad [12:02]

cpark [11:40]

Mario_Imperator [11:33]

leonovichstas97 [22:40]

ubeyefudu [18:53]

zheniakuzma [17:47]

Moonberg [16:04]

tamararl6 [15:04]

consuelobm3 [08:03]