You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Windows Docker Toolbox环境下配置Rails letter opener gem打开邮件

Rails应用letter_opener无法在浏览器打开邮件内容的解决方案
  • 确认存储路径权限与配置
    检查config/initializers/letter_opener.rb中的存储路径配置,确保指向正确的可读写目录:

    LetterOpener.configure do |config|
      config.location = Rails.root.join('tmp', 'letter_opener')
    end
    

    执行命令确保目录存在且权限正确:

    mkdir -p tmp/letter_opener && chmod -R 755 tmp/letter_opener
    
  • 修正file_uri_scheme配置
    不要手动拼接URI,用Rails路径助手生成符合标准的格式,Linux/macOS下正确的配置应为:

    LetterOpener.configure do |config|
      config.file_uri_scheme = "file://#{Rails.root.join('tmp', 'letter_opener').to_s}"
    end
    

    生成的路径应为file:///your/app/path/tmp/letter_opener格式,注意三个斜杠后接绝对路径。

  • 绕过浏览器file://协议限制
    现代浏览器会限制非本地域名(如192.168.99.100)访问本地file://资源,可换用letter_opener_web通过HTTP访问:

    1. 在Gemfile添加:
      gem 'letter_opener_web', group: :development
      
    2. 执行bundle install
    3. 在config/routes.rb添加路由:
      mount LetterOpenerWeb::Engine, at: "/letter_opener" if Rails.env.development?
      
    4. 修改初始化配置:
      LetterOpener.configure do |config|
        config.delivery_method = :letter_opener_web
      end
      
    5. 重启服务器后,访问http://192.168.99.100:3000/letter_opener即可查看所有邮件。
  • 直接访问本地邮件文件
    如果不想更换gem,可登录服务器找到tmp/letter_opener下的HTML邮件文件,下载到本地后用浏览器打开,或在服务器有GUI环境下直接打开。

内容的提问来源于stack exchange,提问作者MarceloSnts

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.03 15:35:28