2016-07-15 11 views
3

Ich probiere mailgun API mit Ruby. Das erste, was ich getan habe, war ein Konto zu registrieren. Ich habe die api_key und die Sandbox Domain aktiv. Ich füge dann meine eigene E-Mail zu autorisierten Empfängern aus der Sandbox-Domäne hinzu. Ich habe genau wie in der Dokumentation:ruby ​​mailgun senden mail scheitert mit 400 schlechte Anfrage

def send_simple_message 
    RestClient.post "https://api:key-mykey"\ 
    "@api.mailgun.net/v3/sandboxe5148e9bfa2d4e99a1b02d237a8546fe.mailgun.org/messages", 
    :from => "Excited User <[email protected]>", 
    :to => "[email protected], [email protected]", 
    :subject => "Hello", 
    :text => "Testing some Mailgun awesomness!", 
    :multipart => true 
end 

send_simple_message 

Aber es gibt immer 400 Bad Request, hier ist die Spur aus der Klemme:

/home/ys/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/rest-client-2.0.0/lib/restclient/abstract_response.rb:223:in `exception_with_response': 400 Bad Request (RestClient::BadRequest) 
    from /home/ys/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/rest-client-2.0.0/lib/restclient/abstract_response.rb:103:in `return!' 
    from /home/ys/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/rest-client-2.0.0/lib/restclient/request.rb:860:in `process_result' 
    from /home/ys/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/rest-client-2.0.0/lib/restclient/request.rb:776:in `block in transmit' 
    from /home/ys/.rbenv/versions/2.3.1/lib/ruby/2.3.0/net/http.rb:853:in `start' 
    from /home/ys/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/rest-client-2.0.0/lib/restclient/request.rb:766:in `transmit' 
    from /home/ys/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/rest-client-2.0.0/lib/restclient/request.rb:215:in `execute' 
    from /home/ys/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/rest-client-2.0.0/lib/restclient/request.rb:52:in `execute' 
    from /home/ys/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/rest-client-2.0.0/lib/restclient.rb:71:in `post' 
    from mailgunner.rb:24:in `send_simple_message' 
    from mailgunner.rb:33:in `<main>' 

Was habe ich falsch hier tun? Ich habe Rest-Client gem installiert, also denke ich, dass es Probleme bei meiner Registrierung oder etwas gibt?

+0

Ich hoffe, Sie haben Ihr Problem gelöst. In meinem Fall musste ich "Empfänger-E-Mail" zum Abschnitt "Autorisierter Empfänger" hinzufügen, da ich den Sandbox-Account verwendete. – Abhinay

+0

@Abhinay yup, ich löste das Problem, aber nicht sicher, wie ... es ist so lange her – YaphatS

Antwort

2

hatte ich ein ähnliches Problem und sah die Dokumentation hier: https://github.com/rest-client/rest-client (in Ausnahmen Abschnitt) , wo sie die RestClient.post mit einem Rettungs umgeben. Und ich habe es Druck:

def send_simple_message 
    begin 
    RestClient.post ... 
    rescue RestClient::ExceptionWithResponse => e 
    puts e.response 
    end 
end 

dann bekam ich einen Fehler Zeichenfolge mit diesem:

{"message": "'from' parameter is not a valid address. please check documentation"} 

dann sah, dass ich in meinem Test einen Fehler in dem Feld hatte:

:from => "Test <[email protected]", # missing '>' at the end 

Vielleicht können Sie einen ähnlichen Ansatz verwenden, um Ihr Problem zu lösen.

0

Dieses Problem tritt auf, wenn Benutzer ihre E-Mail-Adresse falsch in ein Formular eingeben. Bei jedem Durchlauf, den ich durchforstet habe, wird die Adresse des Empfängers als [email protected] oder [email protected] geschrieben, wo Mailgun die Domäne nicht validieren und als ungültig zurückschicken kann.

Verwandte Themen