AWS Simple Email Service Ruby SDK 版本 1 在 rails c 中有效,但在 ruby 文件中无效。为什么?

AWS Simple Email Service Ruby SDK Version 1 works in rails c but not in ruby file. Why?

我正在尝试在我的 Rails 4.2 应用程序中编写一个脚本,该脚本将使用 Ruby SDK 版本 1 使用 Amazon SES API 发送电子邮件。出于兼容性原因其他 gem,我需要使用版本 1。

我遇到的问题是,当我使用 rails c 加载控制台时,我能够完美地执行这些方法:

ses = AWS::SimpleEmailService.new
ses.identities.map(&:identity)
ses.send_email(.......)

等等等等。然而,当我尝试执行我的 script/amazon_ses.rb 文件时,它似乎失败了,我不确定为什么会这样。

这是我的初始化文件:

ActionMailer::Base.add_delivery_method :amazon_ses,     
  AWS::SimpleEmailService,
    access_key_id: ENV['AWS_ACCESS_KEY_ID'],
    secret_access_key: ENV['AWS_SECRET_ACCESS_KEY'],
    region: 'email.us-east-1.amazonaws.com',
    server: 'email.us-east-1.amazonaws.com'

这是我的 script/amazon_ses.rb 文件:

require 'aws-sdk-v1'

ses = AWS::SimpleEmailService.new
identity = ses.identities.map(&:identity)
ses.send_email(.......code.....)

rescue in block in define_attribute_getter': unable to find the identity (AWS::Core::Resource::NotFound)

我不知道该怎么办,但我感觉 Core::Resource 没有被加载、继承、包含等。有没有人以前遇到过这个问题?

尝试添加

require File.expand_path('../../config/environment', __FILE__)

到脚本的顶部。这将引入您的 rails 环境。

或者不加上面的试试

 bin/rails runner script/amazon_ses.rb