我有一个动作邮件程序方法,如下所示:
def mail
@receiver = User.where(status: 2).pluck(:email)
mail(bcc:@receiver, to: "username@gmail.com")
end
application.yml 看起来像这样:
SMTP_ADDRESS: 'smtp.gmail.com'
SMTP_PORT: 587
SMTP_HOST: 'localhost:3000'
SMTP_DOMAIN: 'localhost:3000'
SMTP_USERNAME: 'user@gmail.com'
SMTP_PASSWORD: 'xxxxx'
SUPER_ADMIN_EMAIL: 'super_admin@mailinator.com'
developmet.rb 如下所示:
config.action_mailer.asset_host = ENV["SMTP_HOST"]
# config.action_mailer.delivery_method = :letter_opener
config.action_mailer.raise_delivery_errors = false
config.action_mailer.delivery_method = :smtp
config.action_mailer.smtp_settings = {
#Enter the smtp provider here ex: smtp.mandrillapp.com
address: ENV["SMTP_ADDRESS"],
port: ENV['SMTP_PORT'].to_i,
#Enter the smtp domain here ex: vendaxo.com
domain: ENV["SMTP_DOMAIN"],
#Enter the user name for smtp provider here
user_name: ENV["SMTP_USERNAME"],
#Enter the password for smtp provider here
password: ENV["SMTP_PASSWORD"],
authentication: 'plain',
enable_starttls_auto: true
接收者保存在BCC但是" username@gmail.com"将能够看到BCCd接收器。当我从本地主机发送邮件时,这工作正常。当接收者收到电子邮件时,所有这些都是BCC和一个' username@gmail.com'能够看到所有的接收器。
但是当我在具有类似 application.yml 配置的生产服务器上执行同样的操作时,更改主机和端口 username@gmail.com 不会收到电子邮件BCCd接收器。
答案 0 :(得分:0)
我认为如果您在AWS EC2上运行生产服务器(也可能是其他提供商),每次对 application.yml 或任何其他共享文件进行一些更改时,您需要重新启动应用服务器以应用更改的配置。在我的情况下,我不得不重新启动PUMA,并且一个默认电子邮件开始获得BCCd电子邮件ID。