- Регистрация
- 30.11.2020
- Сообщения
- 496
- Благодарностей
- 314
- Баллы
- 63
Доброй ночи форумчане. Для тестов потребовалось собрать небольшой smtp sender на базе Mime/MailKit. Сами готовые DLL честно взял на одной из веток данного форума.
Не могу сообразить как передать значение SecureSocketOptions в код ниже
Код работает и отправляет письма. Где необходимо исходя из входных данных серверов отправителей, он меняет SSL на true либо false.
Но возникла следующая проблема. Некоторые сервера для аутентификации требуют задать TLS11/TLS12
В документации по MailKit нашел решение которое позволяет программе самостоятельно определять транспортный протокол
В указанном выше коде это соответствует строке 24 только в ней отсутствует SecureSocketOptions
Пытался подставить
но это к сожалению не срабатывает, мейкер ругается на то что не понимает этого значения SecureSocketOptions.Auto
попытался так
но все равно результата нет.
Подскажите, как правильно реализовать это в строке.
Не могу сообразить как передать значение SecureSocketOptions в код ниже
C#:
string login = "";
string pass = "";
int port = 587;
bool SSL = false;
var server = "";
string email = "";
string bcc = "";
string bcc2 = "";
var subject = "";
var message = "";
var emailMessage = new MimeMessage();
emailMessage.From.Add(new MailboxAddress("Notification",login));
emailMessage.To.Add(new MailboxAddress("", email));
emailMessage.Bcc.Add(new MailboxAddress( bcc,bcc2));
emailMessage.Subject = subject;
emailMessage.Body = new TextPart(MimeKit.Text.TextFormat.Html)
{
Text = message
};
using (var client = new SmtpClient())
{
try
{
client.Connect(server, port, SSL);
client.Authenticate(login, pass);
client.Send(emailMessage);
}
catch (Exception e)
{
var log = e.ToString();
project.SendInfoToLog(login + "LOGGER" + " | " +log);
}
client.Disconnect(true);
}
Но возникла следующая проблема. Некоторые сервера для аутентификации требуют задать TLS11/TLS12
В документации по MailKit нашел решение которое позволяет программе самостоятельно определять транспортный протокол
C#:
client.Connect(mailService.Host, mailService.Port, SecureSocketOptions.Auto);
C#:
client.Connect(server, port, SSL);
C#:
client.Connect(server, port, SecureSocketOptions.Auto);
попытался так
C#:
var SecureSocketOptions = Auto; // в различных вариантах
client.Connect(server, port, SecureSocketOptions);
Подскажите, как правильно реализовать это в строке.
Последнее редактирование: