2017-04-05 2 views
-1

Heroku에서 Mailgun과 DelayedJob을 사용하여 ActionMail을 설정하려고하는데 DelayedJob이 Mailgun으로 요청을 시작하는 지점까지 모든 것이 작동하지만, mailgun에서 400 Bad Request: 'from' parameter is missing.레일스 환경 변수가 Heroku에서 생산되지 않음

내 메일러는 app/mailers/example_mailer.rb입니다 :

class ExampleMailer < ApplicationMailer 

def sample_email(user) 
    @user = user 
    mailgun_client = Mailgun::Client.new ENV['MAILGUN_API_KEY'] 
    message_params = {:from  => ENV['GMAIL_USERNAME'], 
         :to  => @user.email, 
         :subject => 'Sample Mail Using Mailgun API', 
         :text  => 'Testing...'} 

    mailgun_client.send_message ENV['MAILGUN_DOMAIN'], message_params 

    end 
end 

config/application.yml :

MAILGUN_API_KEY: '[REDACTED]' 
MAILGUN_ADDRESS: 'smtp.mailgun.org' 
MAILGUN_PORT:  587 
MAILGUN_DOMAIN: '[REDACTED]' 
MAILGUN_USERNAME: '[REDACTED]' 
MAILGUN_PASSWORD: '[REDACTED]' 
GMAIL_USERNAME: '[REDACTED]' 

오류가 현장에서 제대로 설정 내 Heroku가 콘솔에 로그인하고 테스트되고 있지 않도록 때문에 내 ENV 변수들과 그 모두는 ENV['GMAIL_USERNAME']을 제외하고는 모두 존재합니다. 이 변수가 내 프로덕션 환경에서 누락되는 이유가 있습니까? 전에 이런 환경 변수에 문제가 생겨본 적이 없으므로 이것을 디버깅하는 방법을 모르겠습니다.

답변

2

나는 나의 환경 변수를 처리 할 수있는 I 설정 피가로, 바보와 Heroku가에 게시하는 것을 잊었다 : 또한

figaro heroku:set -e production 

, 당신은 문자열의 application.yml에있는 모든 변수를 포장 할 필요가 그래서 또한 MAILGUN_PORT를 '587'로 업데이트해야했습니다.