首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Rails Mailer:在delivery_method :file时更改文件

Rails Mailer:在delivery_method :file时更改文件
EN

Stack Overflow用户
提问于 2013-04-22 19:12:07
回答 1查看 1.2K关注 0票数 2

我想要一个名为时间戳+ normal_mail_name +“.eml”的文件。

我查看了rails源代码、mail-gem源代码和字母打开器-gem.请给我一个提示,如何(猴子补丁) rails邮件程序,以支持我可以指定如下:

config.action_mailer.file_settings ={ :location => Rails.root.join('tmp','mail'),:file_name => Time.now.to_i.to_s + "mail.eml“}

谢谢!

更新:也很高兴能自动打开这封邮件,我的本地相关电子邮件程序带有launchy,比如开封信宝石。我会自己做的,但我不明白原生态。

EN

回答 1

Stack Overflow用户

发布于 2013-04-25 16:46:08

我想你有很多邮件,你会想要调试邮件正文,短信等?我说的对吗?如果我是对的,我不会用delivery_method :file发送邮件,我只会创建一个真正的电子邮件(例如gmail)帐户并通过一个测试帐户发送邮件。

例如,在配置/环境/Development.rb中:

代码语言:javascript
运行
复制
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文件:

代码语言:javascript
运行
复制
development:
  address: smtp.gmail.com
  port: 587
  authentication: login
  user_name: test@your-domain.com
  password: yourpassword
  enable_starttls_auto: true

这并不能直接回答你的问题,但也许这个工作对你来说是个不错的选择。您还可以以同样的方式配置其他环境,这取决于您的需要。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16154872

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档