#python
#python
Вопрос:
Я написал php-скрипт, который, по сути, принимает параметры из post-запросов и отправляет электронное письмо на основе этого. Я мог бы проще использовать python для отправки электронной почты, но этот проект не будет работать должным образом, если это будет сделано. Проблема не в php, поскольку я использовал его раньше с c , и все работает нормально. Проблема возникает при использовании python. Я знаю, что делаю что-то не так, и у меня есть хорошая идея о том, что это основано на исследованиях, но я не могу выяснить, как это исправить самостоятельно. Я понимаю, что мне нужно использовать словари с data = в «requests.post», но я не совсем уверен в том, как можно было бы пойти и сделать это. Вот пример кода.
import requests
w=raw_input("type the email address to witch the message will be received.")
n=raw_input("name?")
s=raw_input("subject?")
m=raw_input("email message?")
if w=="" or n=="" or f=="" or m=="":
print "Empty fields are not allowed. Now exiting."
else:
r=requests.post("http://example.com/mailer.php?who=%samp;name=%samp;from=%samp;sub=%samp;mess=%s") % (w, n, f, s, m)
Комментарии:
1. Вам может потребоваться 5 минут, чтобы прочитать документ requests.
2. В вашем коде не объявлена переменная «f»…
Ответ №1:
Ввод ваших данных в URL в основном предназначен для запросов GET. Сервер может заметить это в POST-запросе, а может и не заметить. Попробуйте это вместо:
r = requests.post("http://example.com/mailer.php", data={
'who': w, 'name': n, 'from': f, 'sub': s, 'mess': m})
print(r.status_code, r.reason)
Ответ №2:
Попробуйте создать свой data
словарь следующим образом:
payload = {
'who': w,
'name': n,
'from': f,
'sub': s,
'mess': m,
}
r = requests.post("http://example.com/mailer.php", data=payload)
Также обратите внимание, что:
if not all((w, n, f, m)):
является ли более приятным эквивалентом:
if w=="" or n=="" or f=="" or m=="":