Создание Windows-приложений на основе Visual C#


           

Основной класс сообщения. Common.cs


namespace Mail { using System; using System.Collections; using System.IO; using System.Text; using System.Text.RegularExpressions; using System.Security.Cryptography;

using Mail.Providers;

/// <summary> /// Основной класс для <see cref="Mime"/> и <see cref="Message"/>. /// Содержит общую информацию и различные методы. /// </summary> public class Common { internal const string DCRLF = "\r\n\r\n"; internal const string CRLF = "\r\n"; internal const char Colon = ':'; internal const string MIMEE = "--";

internal string _message; internal long _size;

internal Provider _pop3;

public Provider Parent { get { return _pop3; } }

/// <summary> /// Список sub-mimes. /// </summary> public Mime [] ChildMimes = new Mime[0];

/// <summary> /// Заголовки. /// </summary> internal Hashtable Headers = new Hashtable();

/// <summary> /// Содержит все заголовки из <see cref="Message"/> или <see cref="Mime"/> /// </summary> /// <remarks> /// Все заголовки должны быть в нижнем регистре. /// </remarks> public Hashtable AllHeaders { get { return Headers; } }

/// <summary> /// Размер сообщения. /// </summary> public long GetSize() { return _size; } /// <summary> /// Подготовка строки в зависимости от кодировки сообщения. /// </summary> /// <param name="mes">Текст сообщения.</param> /// <returns></returns> internal string PreparedString(string mes) { string t; switch (TransferEncoding) { case "base64": t = DecodeMessage(mes, new FromBase64Transform()); break;

case "quoted-printable": t = DecodeMessage(mes, new FromQuotedPrintableTransform()); break;

default: t = mes; break; }

return t; } /// <summary> /// Подготовка тела сообщения. /// </summary> /// <returns></returns> internal string PreparedBody() {

return PreparedString(_message); } /// <summary> /// Декодируем сообщение. /// </summary> /// <param name="message">Текст сообщения.</param> /// <param name="transform">Тип трансформации.</param> /// <returns></returns> string DecodeMessage(string message, ICryptoTransform transform) { MemoryStream tf = new MemoryStream(); CryptoStream cs = new CryptoStream(tf, transform, CryptoStreamMode.Write);



Содержание  Назад  Вперед