在与 Gmail 通信时,ActionMailer 的 "enable_starttls_auto" 设置会保护我的电子邮件凭据吗?
Does ActionMailer's "enable_starttls_auto" setting protect my email credentials when communicating with Gmail?
我有兴趣使用 Rails' ActionMailer 通过 gmail 帐户向用户发送电子邮件。有许多教程建议使用以下设置,它可以完成基本工作:
config.action_mailer.delivery_method = :smtp
config.action_mailer.smtp_settings = {
:address => "smtp.gmail.com",
:port => 587,
:user_name => "my-gmail-address@gmail.com",
:password => "my-gmail-password",
:authentication => "plain",
:enable_starttls_auto => true
}
不过,我担心的是安全问题。 Gmail 要求我降低 gmail 帐户的安全设置才能使此方法起作用,此外,presumably,ActionMailer 只使用 BASE64 编码将我的电子邮件凭据发送到 Gmail,这种编码很容易解码。
也就是说,ActionMailer 的“enable_starttls_auto”设置给了我一些希望,即 ActionMailer 和 Gmail 将在交换电子邮件凭据之前执行安全握手,并为凭据通过建立安全通道。是这种情况吗?我可以高枕无忧,还是要真正建立安全连接,我需要通过某种 OAuth 2 API 连接与 gmail 通信吗?
将 "enable_starttls_auto" 设置为 true 将检查服务器是否支持 starttls 并使用它 如果 它支持。但是,在任意 smtp 服务器的情况下,无法保证安全传输:如果服务器不支持 starttls,您的凭据将以明文形式发送。
您是否信任 GMail 始终启用 starttls 是您的选择。
如果你想确定,你可以使用 ssl: true 和 port: 465,如果我没有记错的话 GMail 服务器应该也支持。
enable_starttls_auto
本身并不能保护您,因为中间人可以伪装成 gmail,让您仅以明文连接,窃取您的密码并访问您的电子邮件。
至于如何强制执行 - 要么使用 Gabor Lengyel 建议的 - 正常的 TLS 端口。或者设置 enable_starttls
哪个有效并且应该在某个时候出现在 rails 文档中 #44096. See this answer
我有兴趣使用 Rails' ActionMailer 通过 gmail 帐户向用户发送电子邮件。有许多教程建议使用以下设置,它可以完成基本工作:
config.action_mailer.delivery_method = :smtp
config.action_mailer.smtp_settings = {
:address => "smtp.gmail.com",
:port => 587,
:user_name => "my-gmail-address@gmail.com",
:password => "my-gmail-password",
:authentication => "plain",
:enable_starttls_auto => true
}
不过,我担心的是安全问题。 Gmail 要求我降低 gmail 帐户的安全设置才能使此方法起作用,此外,presumably,ActionMailer 只使用 BASE64 编码将我的电子邮件凭据发送到 Gmail,这种编码很容易解码。
也就是说,ActionMailer 的“enable_starttls_auto”设置给了我一些希望,即 ActionMailer 和 Gmail 将在交换电子邮件凭据之前执行安全握手,并为凭据通过建立安全通道。是这种情况吗?我可以高枕无忧,还是要真正建立安全连接,我需要通过某种 OAuth 2 API 连接与 gmail 通信吗?
将 "enable_starttls_auto" 设置为 true 将检查服务器是否支持 starttls 并使用它 如果 它支持。但是,在任意 smtp 服务器的情况下,无法保证安全传输:如果服务器不支持 starttls,您的凭据将以明文形式发送。
您是否信任 GMail 始终启用 starttls 是您的选择。
如果你想确定,你可以使用 ssl: true 和 port: 465,如果我没有记错的话 GMail 服务器应该也支持。
enable_starttls_auto
本身并不能保护您,因为中间人可以伪装成 gmail,让您仅以明文连接,窃取您的密码并访问您的电子邮件。
至于如何强制执行 - 要么使用 Gabor Lengyel 建议的 - 正常的 TLS 端口。或者设置 enable_starttls
哪个有效并且应该在某个时候出现在 rails 文档中 #44096. See this answer