我认为您有很多邮件内容,并且您想要调试邮件正文、文本等?我对吗?如果我是对的,我不会使用 delivery_method :file 发送邮件,我只会创建一个真实的电子邮件(例如 gmail)帐户并通过测试帐户发送邮件。
例如在您的 config/environments/development.rb 中:
email_settings = YAML::load(File.open("#{Rails.root.to_s}/config/mail.yml"))[Rails.env] rescue nil
if email_settings.nil?
config.action_mailer.raise_delivery_errors = false
config.action_mailer.perform_deliveries = false
config.action_mailer.delivery_method = :file
else
config.action_mailer.raise_delivery_errors = true
config.action_mailer.perform_deliveries = true
config.action_mailer.delivery_method = :smtp
config.action_mailer.smtp_settings = {
:address => "#{email_settings["address"]}",
:port => email_settings["port"],
:authentication => "#{email_settings["authentication"]}",
:user_name => "#{email_settings["user_name"]}",
:password => "#{email_settings["password"]}",
:enable_starttls_auto => email_settings["enable_starttls_auto"]
}
end
还有你的 mail.yml 文件:
development:
address: smtp.gmail.com
port: 587
authentication: login
user_name: test@your-domain.com
password: yourpassword
enable_starttls_auto: true
这并不是您问题的直接答案,但也许这种解决方法对您来说是一个不错的选择。您还可以根据需要以相同的方式配置其他环境。