在使用ActionMailer时,是否有办法指定发件人和收件人信息的邮箱和名称?

通常你会:

@recipients   = "#{user.email}"
@from         = "info@mycompany.com"
@subject      = "Hi"
@content_type = "text/html"

但是,我还想指定名称--MyCompany <info@mycompany.com>John Doe <john.doe@mycompany>.

有办法吗?

推荐答案

如果您为姓名和邮箱接受用户输入,那么除非您非常仔细地验证或转义姓名和邮箱,否则通过简单地连接字符串,您可能会得到一个无效的From头.以下是一个安全的方法:

require 'mail'
address = Mail::Address.new email # ex: "john@example.com"
address.display_name = name.dup   # ex: "John Doe"
# Set the From or Reply-To header to the following:
address.format # returns "John Doe <john@example.com>"

Ruby-on-rails相关问答推荐

包含字母和数字组合的正则表达式

Ruby on Rails - 外键不匹配

使用has_many_through关联创建记录 – Ruby on Rails

从 rails 5 升级到 6 和 zeitwerk

从 rails 5 迁移到 rails 6

Gem::Ext::BuildError:ERROR:无法在macOS Monterey上构建Gem本机扩展

Rails 自动加载完全大写的名称,如 API

Rails Scope 返回 all 而不是 nil

Rails 发现获取 ActiveRecord::RecordNotFound

Rails 和 OS X:如何安装 rmagick?

从子类中的重载方法调用基类方法

Rails ActiveRecord 查询日期范围

如何在where子句中组合两个条件?

mongoid 中 embeds_many 和 has_many 的区别

如何将自定义路由添加到资源路由

格式化日期对象以显示人类可读的日期

Ruby on Rails:如何为 postgresql 编辑 database.yml?

在 GIT 中处理 Rails db/schema.rb 文件的正确方法是什么?

如何在 Rails 表单中将复选框和标签保持在同一行?

简单的 rails rake 任务拒绝运行并出现错误不知道如何构建任务,为什么?