2017-10-20 28 views
0

Essayez d'exécuter un programme python très simple pour le test. Voici le code:API Mailgun: le paramètre "from" n'est pas une adresse valide, veuillez vérifier la documentation "

import requests 
def send_email(): 
files = [ 
('to', '<my-email-address>'), 
('subject', 'Thank you from Foo'), 
('text', 'Hello World'), 
('from', '\"Info\" <[email protected]>'), 
] 
r =requests.post('https://api.mailgun.net/v3/mail1.parkl.com/messages', files=files, auth=('api', '<my-key>')) 
print r.text, r.status_code 

if __name__ == "__main__": 
send_email() 

Il recrache { « message »: « « de » paramètre est pas une adresse valide s'il vous plaît vérifier la documentation » } 400

J'ai essayé diverses options pour partir paramètre mais aucun ne semble fonctionner. « Info », [email protected], [email protected]

lecture en ligne, il semble que je ne suis pas le premier courant dans cette question, mais quelqu'un pourrait me montrer comment résoudre ce problème et aller de l'avant.

Une demande boucle avec même paramètre exact fonctionne très bien:

curl -s —user 'api:<my-key>' \ 
https://api.mailgun.net/v3/mail1.parkl.com/messages \ 
-F from=‘Foo <[email protected]>' \ 
-F to=<my-email-address> \ 
-F subject='Info Hello' \ 
-F text='Testing some Mailgun awesomness!' 

Répondre

0

caractères d'échappement ne seraient pas nécessaires dans la valeur de paramètre From lorsque vous spécifiez un nom d'affichage. Bien, vous pouvez utiliser des guillemets doubles pour le nom d'affichage comme ceci:

import requests 

def send_simple_message(): 
    return requests.post(
     "https://api.mailgun.net/v3/example.com/messages", 
     auth=("api", "key-<api-key-here>"), 
     data={"from": '"Excited User" <[email protected]>', 
       "to": "[email protected]", 
       "subject": "Hello", 
       "text": "Testing some Mailgun Awesomeness!"}) 

print send_simple_message().text 

Ou définir la valeur pour le paramètre From entre guillemets simples ou doubles tels que:

"from": 'Excited User <[email protected]>' 

** Responsabilité Je travaille chez Mailgun **