【问题标题】:What does :tls => true do in SMTP settings in Rails 5? [duplicate]:tls => true 在 Rails 5 的 SMTP 设置中有什么作用? [复制]
【发布时间】:2020-03-16 17:18:12
【问题描述】:

我在 Rails 5.2 应用程序上使用 Sendgrid,得到了一个 Net::ReadTimeout 尝试发送电子邮件时出错。这里的帖子 https://github.com/mikel/mail/issues/639#issuecomment-29016055 建议在 SMTP 设置中添加 :tls => true。这行得通,但它似乎是一个旧的解决方案,我想了解它在做什么以及它为什么起作用。

这是我的 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
}

【问题讨论】:

标签: ruby-on-rails ssl sendgrid-rails


【解决方案1】:

电子邮件实际上是从电子邮件客户端发送到接收电子邮件服务器或从一个服务器发送到另一个服务器的纯文本通信。这种设计限制使任何人都可以窃听传输中的消息内容;从机场或咖啡店的无线热点到您的 ISP 和将您的消息传送到世界各地的互联网骨干提供商。

传输层安全性 (TLS) 通过在邮件从一个安全电子邮件服务器“传输”到另一个安全电子邮件服务器时为您的邮件提供加密技术来帮助解决此问题。也就是说,TLS 有助于防止窃听电子邮件,因为它是在启用了电子邮件 TLS 保护的电子邮件服务器之间传输的。正如 TLS 可用于保护 Web 通信 (HTTPS) 一样,它可以保护电子邮件传输。在这两种应用中,TLS 都有相似的优点和缺点。为了最大限度地提高内容安全性和隐私性,处理消息的所有服务器之间都需要 TLS,包括内部和外部服务器之间的跃点。

TLS 的主要特性包括:

  • 加密邮件:TLS 使用公钥基础结构 (PKI) 对从邮件服务器到邮件服务器的邮件进行加密。这种加密使黑客更难拦截和阅读消息。

  • 身份验证:TLS 支持使用数字证书对接收服务器进行身份验证。发送服务器的身份验证是可选的。此过程会验证接收者(或发送者)的真实身份,这有助于防止欺骗。

For reference

【讨论】:

  • 对错误本身及其含义有何想法? Sendgrid 文档的设置说明中不包含 :tls => true 设置,因此我想确保没有其他问题,我只是在修补此修复程序。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-03-19
  • 2011-09-03
  • 1970-01-01
  • 1970-01-01
  • 2019-03-26
  • 2015-09-12
  • 1970-01-01
相关资源
最近更新 更多