SmtpClient

SmtpClient class

Позволяет приложениям отправлять сообщения с использованием простого протокола передачи почты (SMTP).

public sealed class SmtpClient : EmailClient, IAsyncSmtpClient, IMailTransferAgent

Конструкторы

ИмяОписание
SmtpClient()Инициализирует новый экземплярSmtpClient класс.
SmtpClient(Configuration)Инициализирует новый экземплярSmtpClient класс с помощью настроек файла конфигурации.
SmtpClient(string)Инициализирует новый экземплярSmtpClient класс.
SmtpClient(string, int)Инициализирует новый экземплярSmtpClient класс.
SmtpClient(string, SecurityOptions)Инициализирует новый экземплярSmtpClient класс.
SmtpClient(string, int, SecurityOptions)Инициализирует новый экземплярSmtpClient класс.
SmtpClient(string, string, ITokenProvider)Инициализирует новый экземплярSmtpClient класс.
SmtpClient(string, string, string)Инициализирует новый экземплярSmtpClient класс.
SmtpClient(string, int, string, ITokenProvider)Инициализирует новый экземплярSmtpClient класс.
SmtpClient(string, int, string, string)Инициализирует новый экземплярSmtpClient класс.
SmtpClient(string, string, ITokenProvider, SecurityOptions)Инициализирует новый экземплярSmtpClient класс.
SmtpClient(string, string, string, bool)Инициализирует новый экземплярSmtpClient класс.
SmtpClient(string, string, string, SecurityOptions)Инициализирует новый экземплярSmtpClient класс.
SmtpClient(string, int, string, ITokenProvider, SecurityOptions)Инициализирует новый экземплярSmtpClient класс.
SmtpClient(string, int, string, string, bool)Инициализирует новый экземплярSmtpClient класс.
SmtpClient(string, int, string, string, SecurityOptions)Инициализирует новый экземплярSmtpClient класс.
SmtpClient(string, string, string, bool, SecurityOptions)Инициализирует новый экземплярSmtpClient класс.
SmtpClient(string, int, string, string, bool, SecurityOptions)Инициализирует новый экземплярSmtpClient класс.

Характеристики

ИмяОписание
virtual AccessToken { get; set; }Получает или задает токен доступа.
AllowedAuthentication { get; set; }Получает или задает перечисление разрешенных типов аутентификации пользователя
virtual ClientCertificates { get; }Содержит коллекцию сертификатов клиентов
virtual ConnectionAsgmtMode { get; set; }Получает или задает значение, определяющее режим распределения соединений в нескольких потоках environment Существуют следующие типы соединений: - Основное соединение создается и удаляется вместе с почтовым клиентом. Его нельзя создать или удалить вручную. - Соединение по умолчанию является соединением по умолчанию для некоторого потока. Если соединение по умолчанию существует и ConnectionAsgmtMode разрешает, все методы почтового клиента, выполняемые в этом потоке, будут неявно использовать это соединение. В каждом потоке может существовать только одно соединение по умолчанию. Он может быть создан вручную или автоматически. Это зависит от свойства EmailClient.ConnectionAsgmtMode. Эти соединения можно создать вручную с помощью метода EmailClient.CreateConnection(createAsDefaultConnection = true). Если соединение по умолчанию не используется (зависит от режима распределения соединений), вместо него неявно используется основное соединение. не связаны с потоками. Они могут быть созданы вручную и должны использоваться явно как параметр метода. Эти соединения можно создать вручную с помощью метода EmailClient.CreateConnection() или метода EmailClient.CreateConnection(createAsDefaultConnection = false). Существуют следующие типы распределения соединений: - ConnectionAsgmtType.UseMainOrDefault Этот режим используется по умолчанию в почтовых клиентах. Почтовый клиент использует основное соединение для всех операций из нескольких потоков, если соединение по умолчанию не было создано или соединение не было явно передано как параметр метода. Основное соединение — это соединение, которое создается одновременно с почтовым клиентом. Пользователь может создавать соединения по умолчанию для потоков с помощью метода CreateConnection. Если создано соединение по умолчанию для потока, оно неявно используется для всех методов почтового клиента, которые вызываются в этом потоке. Если соединение по умолчанию для потока не создано, основное соединение используется для всех методов почтового клиента, которые вызываются в этом потоке. thread. Пользователь также может создавать соединения, не связанные с потоками (не соединения по умолчанию), с помощью метода CreateConnection. Если пользователь хочет использовать другие подключения (не основные и не по умолчанию), он должен явно передать это подключение как параметр метода, который он хочет использовать. Пользователь может дополнительно создать любое количество подключений. Соединение по умолчанию может быть только одно на поток. Обратите внимание, что соединения по умолчанию работают правильно, если пользователь использует объекты Thread для многозадачного программирования. Если пользователь использует ConnectionPool или объекты Task для многозадачного программирования, этот режим может привести к неправильному поведению программы. Чтобы избежать этой проблемы, пользователь должен вручную удалить соединение по умолчанию (если он его использует) в конце кода, который the thread. - ConnectionAsgmtType.UseMain Почтовый клиент использует основное соединение для всех операций из нескольких потоков. Основное соединение — это соединение, которое создается одновременно с почтовым клиентом. Пользователь не может создавать соединения по умолчанию. Пользователь может создавать соединения, не связанные с потоками (не соединения по умолчанию), с помощью метода CreateConnection. Если пользователь хочет использовать другие подключения (не основные и не по умолчанию), он должен явно передать это подключение как параметр метода, который он хочет использовать. Пользователь может дополнительно создать любое количество подключений. - ConnectionAsgmtType.UseDefault Почтовый клиент неявно использует только соединения по умолчанию для всех операций из нескольких потоков. В этом режиме основное соединение не используется. Если для какого-либо потока не было создано соединение по умолчанию (первый вызов метода почтового клиента), почтовый клиент неявно создает соединение по умолчанию для потока перед выполнением первой операции. Пользователь не может создавать подключения по умолчанию для потоков с помощью метода CreateConnection, поскольку они создаются автоматически. Когда создается соединение по умолчанию для потока, оно неявно используется для всех методов почтового клиента, которые вызываются в этом потоке. Читайте. Пользователь также может создавать соединения, не связанные с потоками (не соединения по умолчанию), с помощью метода CreateConnection. Если пользователь хочет использовать другие подключения (не основные и не по умолчанию), он должен явно передать это подключение как параметр метода, который он хочет использовать. Пользователь может дополнительно создать любое количество подключений. Соединение по умолчанию может быть только одно на поток. Обратите внимание, что соединения по умолчанию работают правильно, если пользователь использует объекты Thread для многозадачного программирования. Если пользователь использует ConnectionPool или объекты Task для многозадачного программирования, этот режим может привести к неправильному поведению программы. Чтобы избежать этой проблемы, пользователь должен вручную удалить соединение по умолчанию в конце кода, который выполняется в потоке.
virtual ConnectionCheckupPeriod { get; set; }Период проверки соединения в миллисекундах. Значение по умолчанию: 5 мин.
virtual ConnectionsQuantity { get; set; }Получает или устанавливает количество подключений в режиме множественных подключений
ConnectionState { get; }Получает текущее состояние соединения.
virtual CurrentConnection { get; }Получает текущее соединение в соответствии с ConnectionAsgmtMode option
override DefaultPort { get; }Получает порт по умолчанию для client
DeliveryMethod { get; set; }Получает или задает способ доставки.
EnableLogger { get; set; }Получает или устанавливает значение, которое позволяет включить/выключить logger
GreetingTimeout { get; set; }Получает или задает время ожидания приветствия, которое используется при установлении соединения. Обратите внимание, что время ожидания приветствия не может быть бесконечным. Почтовые клиенты могут выполнять достаточно длительные операции. Для ограничения времени операций пользователи должны использоватьTimeoutимущество. Значения этого свойства должны иметь длинные интервалы, чтобы не препятствовать длительным операциям. Но в некоторых случаях, если EmailClient будет использовать только свойство Timeout, установление соединения может занять много времени. Например, почтовый клиент может использовать автоматический режим установления соединения. В этом режиме почтовый клиент перебирает все возможные параметры подключения, пока соединение не будет установлено. Серверы SMTP, IMAP и POP3 в случае корректного установления соединения отправляют клиенту строку приветствия. Серверы могут использовать неявную или явную (START TLS) инициацию соединения SSL/TLS. Если режим подключения не соответствует (например, сервер ожидает неявного SSL-соединения, но клиент пытается установить незащищенное или явное SSL-соединение), сервер не будет отправлять строку приветствия. В этом случае пользователь будет долго ждать, пока таймаут достигнет строки приветствия, и клиент перейдет к следующему варианту подключения. Чтобы избежать этой проблемы, было введено свойство GreetingTimeout. Это свойство позволяет установить тайм-аут для строки приветствия и уменьшить время автоматического установления соединения.
HelloMessage { get; set; }Получает или задает строку HELO/EHLO.
virtual Host { get; set; }Получает или задает имя хоста.
LogFileName { get; set; }Получает или задает имя файла журнала
virtual Password { get; set; }Получает или устанавливает пароль. Ограничения пароля определяются реализацией сервера, к которому подключается клиент.
PickupDirectoryLocation { get; set; }Получает или задает каталог, в котором приложения сохраняют почтовые сообщения для обработки локальным SMTP-сервером. Обратите внимание: разрешен только абсолютный путь.
virtual Port { get; set; }Получает или задает порт.
virtual Proxy { get; set; }Получает или устанавливает прокси для client
virtual SecurityOptions { get; set; }Режим безопасности для почтового клиента
SmtpQueueLocation { get; set; }Получает или задает каталог, в котором приложения сохраняют почтовые сообщения для обработки путем отправки в очередь SMTP. Обратите внимание: разрешен только абсолютный путь.
SupportedAuthentication { get; }Получает перечисление поддерживаемых сервером типов аутентификации
virtual SupportedEncryption { get; set; }Определяет используемые версии протоколов шифрования SSL/TLS. ОБРАТИТЕ ВАШЕ ВНИМАНИЕ, вы можете установить только те версии протокола, которые поддерживаются .net framework. ЕСЛИ НЕКОТОРЫЕ ВЕРСИИ ПРОТОКОЛА НЕ ПОДДЕРЖИВАЮТСЯ ВАШЕЙ ТЕКУЩЕЙ ВЕРСИЕЙ .NET FRAMEWORK, ОНИ БУДУТ ИГНОРИРОВАТЬСЯ И ПРОПУСКАТЬ. ЭТО МОЖЕТ ПРИВЕСТИ К ПОНИЖЕНИЮ УРОВНЯ БЕЗОПАСНОСТИ TLS. В ЭТОМ СЛУЧАЕ ИСКЛЮЧЕНИЕ НЕ БУДЕТ СОЗДАНО!!! См.EncryptionProtocols документацию для более подробной информации. Пожалуйста, используйтеSetSupportedEncryptionUnsafe метод, если вы хотите установить протоколы шифрования без каких-либо проверок совместимости. Значение по умолчанию: Tls | Тлс11 | Тлс12 | Tls13 (в случае, если ваша текущая версия .net framework поддерживает эти версии TLS)
Timeout { get; set; }Получает или задает время ожидания для почтовых операций
TokenProvider { get; set; }Получает или задает TokenProvider, позволяющий получить токен доступа.
virtual UseAuthentication { get; set; }Указывает, используется ли аутентификация.
UseDateInLogFileName { get; set; }Получает или задает значение, указывающее, следует ли использовать дату в имени файла журнала.
override UseDefaultCredentials { get; set; }Получает или задает логическое значение, которое определяет, отправляются ли DefaultCredentials с запросами.
virtual UseMultiConnection { get; set; }Получает или задает значение, указывающее, должен ли клиент использовать несколько подключений для тяжелых операций. Обратите внимание, использование этого режима не обязательно должно привести к повышению производительности.
virtual UsePipelining { get; set; }Получает или задает объект, указывающий, включен ли конвейерный режим.
virtual Username { get; set; }Получает или задает имя пользователя.
UseTnef { get; set; }Получает или задает логическое значение, определяющее отправку сообщений в формате TNEF. Обратите внимание, что теперь сообщение отправляется в формате TNEF при загрузке сообщения, содержащего tnef.

Методы

ИмяОписание
virtual CreateConnection()Создает новое независимое соединение для операций, не связанных с потоками (не соединение по умолчанию). Вызов этого метода аналогичен вызову CreateConnection(createAsDefaultConnection = false) Подробнее см. в документации по свойству EmailClient.ConnectionAsgmtMode.
virtual CreateConnection(bool)Создает новое (по умолчанию или независимое) соединение для операций. Дополнительные сведения см. в документации по свойству EmailClient.ConnectionAsgmtMode.
virtual Dispose()Завершает все операции с сервером.
Forward(string, MailAddressCollection, MailMessage)Пересылает указанное сообщение получателю
Forward(string, MailAddressCollection, Stream)Пересылает указанное сообщение получателю
Forward(string, string, MailMessage)Пересылает указанное сообщение получателю
Forward(IConnection, string, MailAddressCollection, MailMessage)Пересылает указанное сообщение получателю
Forward(IConnection, string, MailAddressCollection, Stream)Пересылает указанное сообщение получателю
Forward(IConnection, string, string, MailMessage)Пересылает указанное сообщение получателю
ForwardAsync(string, MailAddressCollection, MailMessage)Пересылает указанное сообщение получателю
ForwardAsync(string, MailAddressCollection, Stream)Пересылает указанное сообщение получателю
ForwardAsync(string, string, MailMessage)Пересылает указанное сообщение получателю
ForwardAsync(IConnection, string, MailAddressCollection, MailMessage)Пересылает указанное сообщение получателю
ForwardAsync(IConnection, string, MailAddressCollection, Stream)Пересылает указанное сообщение получателю
ForwardAsync(IConnection, string, string, MailMessage)Пересылает указанное сообщение получателю
ForwardAsync(string, MailAddressCollection, MailMessage, CancellationToken)Пересылает указанное сообщение получателю
ForwardAsync(string, MailAddressCollection, Stream, CancellationToken)Пересылает указанное сообщение получателю
ForwardAsync(string, string, MailMessage, CancellationToken)Пересылает указанное сообщение получателю
ForwardAsync(IConnection, string, MailAddressCollection, MailMessage, CancellationToken)Пересылает указанное сообщение получателю
ForwardAsync(IConnection, string, MailAddressCollection, Stream, CancellationToken)Пересылает указанное сообщение получателю
ForwardAsync(IConnection, string, string, MailMessage, CancellationToken)Пересылает указанное сообщение получателю
virtual GetCapabilities()
override Noop()Команда “Нет операции”
override Noop(IConnection)Команда “Нет операции”
NoopAsync()Команда “Нет операции”
NoopAsync(CancellationToken)Команда “Нет операции”
NoopAsync(IConnection)Команда “Нет операции”
NoopAsync(IConnection, CancellationToken)Команда “Нет операции”
ResetLogSettings()Сбрасывает настройки ведения журнала по умолчанию.
Send(IEnumerable<MailMessage>)Отправить указанные сообщения.
Send(MailMessage)Отправить указанное сообщение.
Send(MailMessageCollection)Отправить указанную коллекцию сообщений.
Send(params MailMessage[])Отправить указанное сообщение.
Send(IConnection, IEnumerable<MailMessage>)Отправить указанные сообщения.
Send(IConnection, MailMessage)Отправить указанное сообщение.
Send(IConnection, MailMessageCollection)Отправить указанную коллекцию сообщений.
Send(IConnection, params MailMessage[])Отправить указанное сообщение.
Send(string, string, string, string)Создает и отправляет указанное сообщение.
Send(IConnection, string, string, string, string)Создает и отправляет указанное сообщение.
SendAsync(IEnumerable<MailMessage>)Отправить указанные сообщения.
SendAsync(MailMessage)Отправить указанное сообщение.
SendAsync(MailMessageCollection)Отправить указанную коллекцию сообщений.
SendAsync(params MailMessage[])Отправить указанное сообщение.
SendAsync(SmtpSend)
SendAsync(CancellationToken, params MailMessage[])Отправить указанное сообщение.
SendAsync(IConnection, IEnumerable<MailMessage>)Отправить указанные сообщения.
SendAsync(IConnection, MailMessage)Отправить указанное сообщение.
SendAsync(IConnection, MailMessageCollection)Отправить указанную коллекцию сообщений.
SendAsync(IConnection, params MailMessage[])Отправить указанное сообщение.
SendAsync(IEnumerable<MailMessage>, CancellationToken)Отправить указанные сообщения.
SendAsync(MailMessage, CancellationToken)Отправить указанное сообщение.
SendAsync(MailMessageCollection, CancellationToken)Отправить указанную коллекцию сообщений.
SendAsync(IConnection, CancellationToken, params MailMessage[])Отправить указанное сообщение.
SendAsync(IConnection, IEnumerable<MailMessage>, CancellationToken)Отправить указанные сообщения.
SendAsync(IConnection, MailMessage, CancellationToken)Отправить указанное сообщение.
SendAsync(IConnection, MailMessageCollection, CancellationToken)Отправить указанную коллекцию сообщений.
SendAsync(string, string, string, string)Создает и отправляет указанное сообщение.
SendAsync(IConnection, string, string, string, string)Создает и отправляет указанное сообщение.
SendAsync(string, string, string, string, CancellationToken)Создает и отправляет указанное сообщение.
SendAsync(IConnection, string, string, string, string, CancellationToken)Создает и отправляет указанное сообщение.
SendToQueue(IEnumerable<MailMessage>)Добавлять сообщения в очередь
SetSupportedEncryptionUnsafe(EncryptionProtocols)Определяет используемые версии протоколов шифрования SSL/TLS. Этот метод небезопасен и устанавливает протоколы шифрования без каких-либо проверок совместимости. ИспользованиеSupportedEncryption свойство для безопасной установки только тех протоколов, которые определенно поддерживаются .net framework. Обратите внимание, если ваш текущий .net framework не поддерживает этот уровень безопасности, будет выдано исключение при попытке установить соединение с сервером.
override ValidateCredentials()Выполняет проверку учетных данных
ValidateCredentials(IConnection)Выполняет проверку учетных данных
ValidateCredentialsAsync()Выполняет проверку учетных данных
ValidateCredentialsAsync(CancellationToken)Выполняет проверку учетных данных
ValidateCredentialsAsync(IConnection)Выполняет проверку учетных данных
ValidateCredentialsAsync(IConnection, CancellationToken)Выполняет проверку учетных данных
static CreateAsync(string, string, IAsyncTokenProvider, int, SecurityOptions, CancellationToken)Создает новый экземплярSmtpClient класс

Смотрите также