2013-03-22 18 views
5

Ich versuche, E-Mails über sendmail in Padrino zu senden. Ich habe die Konfiguration here (Konfiguration und Schnell Verwendung)E-Mails mit Padrino in Heroku senden

angegeben Aber ich folgende Fehlermeldung im Serverprotokoll immer erhalten (auf Heroku oder localhost):

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

Ich installierte die mail gem und ich verwende Padrino 0.10.7

ich dies verwenden, die E-Mail senden:

post :create do 
    email(:from => "[email protected]", :to => "[email protected]", :subject => "Welcome!", :body=>"Body") 
end 

Das ist praktisch alles, was ich habe ...

+0

Welche Einstellungen verwenden Sie? Wo findet dieser Fehler statt, in Padrino oder einem anderen Juwel? Brauchen Sie mehr Details über den Fehler. –

+0

Einstellungen wie was? meinst du mein Gemfile? Der Fehler tritt in meinem Serverprotokoll auf. –

+0

Hey @LuisOrtegaAraneda, könnten Sie es mit Padrino 0.11.0 versuchen? Was die Einstellungen angeht, die Arman erwähnt, bezieht er sich möglicherweise auf die delivery_method in den App-Einstellungen? –

Antwort

5

Sie sollten eines der Parter-Addons für das Senden von E-Mails mit Heroku verwenden.

Eine gute Möglichkeit ist Sendgrid

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

Dann in Ihrem Padrino App in app.rb in Ihrem App-Klasse:

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 
} 

Sie könnten diese für die Einstellungen für einen anderen externen SMTP-Server ersetzen oder sehen Sie sich Mandrill für Transaktions-E-Mails an.

Ich vermute, dass der Errno :: EPIPE-Fehler, den Sie sahen, war, dass es keine Verbindung zu einem gültigen SMTP-Server herstellen konnte, also sollte Ihr Controller-Code in Ordnung sein.

+0

AFAIK (es ist eine Weile her, seit ich das letzte Mal konfiguriert habe, dass ich E-Mails verschicke, die Heroku senden). Du brauchst dafür kein Heroku-Addon zu benutzen. Nicht einmal [Heroku Hilfe] (https://devcenter.heroku.com/articles/smtp) sagt es. – Trompa

+0

@Trompa: Sie benötigen kein Add-on, aber Sie benötigen einen SMTP-Server, um E-Mails zu senden (wie Heroku nicht bietet). – pat

+0

Ich werde deine Lösung versuchen ... lass mich sehen, ob es funktioniert! –

0

Pat hat Recht, Sie brauchen kein Add-on, konfigurieren Sie einfach Ihre app.rb wie stef schlägt vor und Sie sind gut zu gehen. So verwenden wir zum Beispiel gmail und unsere Konfiguration sieht in etwa so aus:

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 
    }