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访问:- 在Gemfile添加:
gem 'letter_opener_web', group: :development - 执行
bundle install - 在
config/routes.rb添加路由:mount LetterOpenerWeb::Engine, at: "/letter_opener" if Rails.env.development? - 修改初始化配置:
LetterOpener.configure do |config| config.delivery_method = :letter_opener_web end - 重启服务器后,访问
http://192.168.99.100:3000/letter_opener即可查看所有邮件。
- 在Gemfile添加:
直接访问本地邮件文件
如果不想更换gem,可登录服务器找到tmp/letter_opener下的HTML邮件文件,下载到本地后用浏览器打开,或在服务器有GUI环境下直接打开。
内容的提问来源于stack exchange,提问作者MarceloSnts
相关产品推荐
相关产品推荐

