- Регистрация
 - 30.11.2020
 
- Сообщения
 - 496
 
- Благодарностей
 - 315
 
- Баллы
 - 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);
	Подскажите, как правильно реализовать это в строке.
								
									Последнее редактирование: 
									
							
						
						
	
		
			
		
	
					



