希望使用Mailjet的API发送延迟的作业邮件程序,但不会发送电子邮件。所有这些都在本地与Foreman一起工作,但再次,在Heroku的开发上并没有发送。已创建延迟作业表。
这是gemfile
gem 'mailjet'
gem 'delayed_job_active_record'
控制器
def create
@article = Article.new(article_params)
if @article.save
# send email to referral email
all_users = User.all
all_users.each do |user|
ArticleMailer.delay.article_confirmation(user,@article)
end
redirect_to @article
else
render 'new'
end
end
邮件
class ArticleMailer < ActionMailer::Base
def article_confirmation(user,article)
@user = user
@article = article
Mailjet::MessageDelivery.create(
to: user.email,
from: "[EMAIL]@gmail",
subject: "[HTML]",
html: "[HTML]
end
end
/environments/development.rb文件
config.action_mailer.delivery_method = :mailjet
config.action_mailer.smtp_settings = {
address: "in-v3.mailjet.com",
port: 587,
domain: "[OURDOMAIN].com",
authentication: "login",
enable_starttls_auto: true,
user_name: "[OUR_USERNAME]",
password: "[OUR_PASSWORD]",
require_ssl: true
}
架构
create_table "delayed_jobs", force: true do |t|
t.integer "priority", default: 0, null: false
t.integer "attempts", default: 0, null: false
t.text "handler", null: false
t.text "last_error"
t.datetime "run_at"
t.datetime "locked_at"
t.datetime "failed_at"
t.string "locked_by"
t.string "queue"
t.datetime "created_at"
t.datetime "updated_at"
end
add_index "delayed_jobs", ["priority", "run_at"], name: "delayed_jobs_priority", using: :btree
create_table "friendly_id_slugs", force: true do |t|
t.string "slug", null: false
t.integer "sluggable_id", null: false
t.string "sluggable_type", limit: 50
t.string "scope"
t.datetime "created_at"
end
更新:
当我运行Delayed::Job.last
=> #<Delayed::Backend::ActiveRecord::Job id: 181, priority: 0, attempts: 0, handler: "--- !ruby/object:Delayed::PerformableMailer\nobject...", last_error: nil, run_at: "2014-12-01 19:04:25", locked_at: nil, failed_at: nil, locked_by: nil, queue: nil, created_at: "2014-12-01 19:04:25", updated_at: "2014-12-01 19:04:25">