2013-03-22 2 views
5

나는 Padrino에서 센드 메일을 통해 이메일을 보내려고합니다. 내가 구성이 here (구성빠른 사용)을 지정했다Herrk의 Padrino와 이메일 보내기

하지만 난 항상 (Heroku가 또는 로컬 호스트) 서버 로그에 다음과 같은 오류가 발생합니다 :

app[web.1]: sh: Illegal option - 
app[web.1]: Errno::EPIPE - Broken pipe: 

내가 설치 mail gem

post :create do 
    email(:from => "[email protected]", :to => "[email protected]", :subject => "Welcome!", :body=>"Body") 
end 
: 나는 이메일을 보내 내가 이것을 사용하고 1996 년 말경에 공개되었던 0.10.7

에게 대부를 사용하고 있습니다

그게 실질적으로 내가 가진 전부 야 ...

+0

어떤 설정을 사용하고 있습니까? 또한, Padrino 또는 다른 보석에서 그 오류가 발생하는 곳은 어디입니까? 오류에 대한 자세한 내용이 필요합니다. –

+0

설정이 무엇인가요? 내 Gemfile을 말하는거야? 오류는 내 서버 로그에서 발생합니다. –

+0

안녕하세요 @LuisOrtegaAraneda, Padrino 0.11.0을 사용해 볼 수 있습니까? Arman이 언급 한 설정에 대해서는 앱 설정의 delivery_method를 참조했을 수 있습니다. –

답변

5

Heroku를 사용하여 메일을 보내려면 parter 애드온 중 하나를 사용해야합니다.

set :delivery_method, :smtp => { 
    :address    => "smtp.sendgrid.net", 
    :port     => 587, 
    :domain    => 'heroku.com', 
    :user_name   => ENV['SENDGRID_USERNAME'], 
    :password    => ENV['SENDGRID_PASSWORD'], 
    :authentication  => :plain, 
    :enable_starttls_auto => true 
} 

당신은 다른 외부 SMTP 서버에 대한 설정을 위해 다음을 대체 할 수 :

좋은 옵션은 응용 프로그램 클래스 내부 app.rb에있는 당신의 대부가 응용 프로그램에서

heroku addons:add sendgrid:starter --app=your_app_name

다음 Sendgrid입니다 거래 전자 메일은 Mandrill입니다.

당신이보고있는 Errno :: EPIPE 오류가 유효한 SMTP 서버에 연결할 수 없다는 것이 의심 스럽습니다. 따라서 컨트롤러 코드는 정상적으로 처리되어야합니다.

+0

AFAIK (지난 시간 이후로 나는 heroku에서 메일 보내기를 구성 했으므로) heroku addon을 사용하지 않아도됩니다. [Heroku 도움말] (https://devcenter.heroku.com/articles/smtp)조차도 말하지 않습니다. – Trompa

+0

@Trompa : 추가 기능은 필요하지 않지만 전자 메일을 보내려면 SMTP 서버가 필요합니다 (Heroku에서 제공하지 않음). – pat

+0

나는 당신의 해결책을 시도 할 것이다 ... 그것이 작동하는지 보자! –

0

Pat이 맞습니다. 추가 기능이 필요하지 않습니다. 단지 stef가 제안한 것처럼 app.rb를 구성하면 좋은 것입니다. 예를 들어 gmail을 사용하면 config는 다음과 같습니다.

set :delivery_method, :smtp => { 
    :address    => "smtp.domain.com", 
    :port     => 587, 
    :domain    => 'rails.domain.com', 
    :user_name   => "[email protected]", 
    :password    => "super-secret", 
    :authentication  => "plain", 
    :enable_starttls_auto => true, 
    :openssl_verify_mode => OpenSSL::SSL::VERIFY_NONE 
    }