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
我正在尝试在我的 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