Что делает:tls => true в настройках SMTP в Rails 5?

Я использую Sendgrid в приложении Rails 5.2 и получаюNet::ReadTimeoutошибка при попытке отправить электронное письмо. В сообщении здесь https://github.com/mikel/mail/issues/639 предлагается добавить:tls => trueв настройки SMTP. Это сработало, но похоже на старое решение, и я хотел бы понять, что он делает и почему сработало.

Это моя настройка SMTP, которая дала Net::ReadTimeout ошибка:

ActionMailer::Base.smtp_settings = {
  :user_name => 'username',
  :password => 'password',
  :domain => 'mydomain.com',
  :address => 'smtp.sendgrid.net',
  :port => 465,
  :authentication => :plain,
  :enable_starttls_auto => true
}

Это то обновление, которое работает.

ActionMailer::Base.smtp_settings = {
  :user_name => 'username',
  :password => 'password',
  :domain => 'mydomain.com',
  :address => 'smtp.sendgrid.net',
  :port => 465,
  :authentication => :plain,
  :enable_starttls_auto => true,
  # this line added
  :tls => true
}

1 ответ

Электронная почта фактически представляет собой сообщение в открытом виде, отправляемое от почтовых клиентов на принимающие почтовые серверы или с одного сервера на другой. Это ограничение конструкции оставляет содержимое передаваемого сообщения открытым для подслушивания; от беспроводной точки доступа в аэропорту или кафе до вашего интернет-провайдера и магистральных интернет-провайдеров, которые доставляют ваши сообщения по всему миру.

Безопасность транспортного уровня (TLS) помогает решить эту проблему, предлагая технологию шифрования для вашего сообщения, когда оно "пересылается" с одного защищенного почтового сервера на другой. То есть TLS помогает предотвратить подслушивание электронной почты, поскольку она передается между почтовыми серверами, на которых включена защита TLS для электронной почты. Так же, как TLS можно использовать для защиты веб-коммуникаций (HTTPS), он может защищать транспорт электронной почты. В обоих приложениях TLS имеет схожие сильные и слабые стороны. Чтобы максимизировать безопасность и конфиденциальность содержимого, требуется TLS между всеми серверами, которые обрабатывают сообщение, включая переходы между внутренними и внешними серверами.

Ключевые особенности TLS:

  • Зашифрованные сообщения: TLS использует инфраструктуру открытого ключа (PKI) для шифрования сообщений от почтового сервера к почтовому серверу. Такое шифрование усложняет хакерам перехват и чтение сообщений.

  • Аутентификация: TLS поддерживает использование цифровых сертификатов для аутентификации принимающих серверов. Аутентификация отправляющих серверов необязательна. Этот процесс проверяет, являются ли получатели (или отправители) тем, кем они являются, что помогает предотвратить спуфинг.

Для справки

Другие вопросы по тегам