gpt4 book ai didi

ruby-on-rails - 您如何测试 Rails 邮件程序凭据是否有效?

转载 作者:行者123 更新时间:2023-11-28 19:45:32 36 4
gpt4 key购买 nike

我有一个通过 GMail 帐户发送的邮件程序,我想测试 ActionMailer 是否可以使用我提供的凭据实际登录到 GMail 的 SMTP 服务器。对此进行测试的最佳方法是什么?

最佳答案

这不是一个完整的解决方案,但您可以直接使用 Net::SMTP 检查服务器身份验证是否正确进行。 Rails 3 用来发送 ActionMailer 电子邮件的 Mail gem 像这样使用 Mail(使用你的 ActionMailer.smtp_settings):

  #line 96 of mail-2.2.7/lib/mail/network/delivery_methods/smtp.rb
smtp = Net::SMTP.new(settings[:address], settings[:port])
if settings[:enable_starttls_auto]
smtp.enable_starttls_auto if smtp.respond_to?(:enable_starttls_auto)
end

smtp.start(settings[:domain], settings[:user_name], settings[:password],
settings[:authentication]) do |smtp|
smtp.sendmail(message, envelope_from, destinations)
# @Mason: this line need not be included in your code. SMTP#start throws
# a Net::SMTPAuthenticationError if the authentication was not successful.
# So just putting this call to #start with an empty block in a method and
# calling assert_no_raise Net::SMTPAuthenticationError should do the trick.
# The empty block is necessary so that the connection gets closed.
# Reference #{rubydir}/lib/ruby/1.8/net/smtp.rb for more info.
end

看起来 ActionMailer::Base.smtp_settings 也可以访问:

  settings = ActionMailer::Base.smtp_settings

将其放入您的测试中并注释掉上面所说的行应该有一个适合您的工作示例。

关于ruby-on-rails - 您如何测试 Rails 邮件程序凭据是否有效?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5085974/

36 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com