Форум сайта python.su
0
Хочу при помощи cgi-скрипта отправлять email.
Есть форма:
<div class="row"> <div class="col-lg-8 col-lg-offset-2"> <form role="form" action="send_mail.cgi"> <div class="row"> <div class="form-group col-xs-12 floating-label-form-group"> <label for="name">Name</label> <input class="form-control" type="text" name="name" placeholder="Name"> </div> </div> <div class="row"> <div class="form-group col-xs-12 floating-label-form-group"> <label for="email">Email Address</label> <input class="form-control" type="email" name="email" placeholder="Email Address"> </div> </div> <div class="row"> <div class="form-group col-xs-12 floating-label-form-group"> <label for="message">Message</label> <textarea placeholder="Message" class="form-control" rows="5"></textarea> </div> </div> <br> <div class="row"> <div class="form-group col-xs-12"> <button type="submit" class="btn btn-lg btn-success">Send</button> </div> </div> </form> </div> </div>
#!/usr/bin/python import cgi import smtplib import cgitb cgitb.enable() print "Content-type: text/html\n" print form = cgi.FieldStorage() name = form.getvalue('name') fromaddress = form.getvalue('email') toaddress = "mymail@gmail.com" message = form.getvalue('message') server = smtplib.SMTP('smtp.gmail.com') server.sendmail(fromaddress, toaddress, message) print "<html><head><title>Sent</title></head>" print "<body><h1 align=center>", print "<p>Your message has been sent!</body>" print "</html>"
Отредактировано kozlo22 (Июль 4, 2014 20:05:19)
Офлайн
857
А где пароль? Без пароля можно было только в прошлом веке отправлять.
Офлайн
0
py.user.nextЯ натыкался на примеры без авторизации.
А где пароль? Без пароля можно было только в прошлом веке отправлять.
#!/usr/bin/python import cgi import smtplib import cgitb cgitb.enable() print "Content-type: text/html\n" print form = cgi.FieldStorage() name = form.getvalue('name') fromaddress = form.getvalue('email') toaddress = "mymail@gmail.com" message = form.getvalue('message') smtp = SMTP() smtp.set_debuglevel(debuglevel) smtp.connect('smtp.gmail.com', 26) smtp.login('username@gmail.com', 'pass') server.sendmail(fromaddress, toaddress, message) print "<html><head><title>Sent</title></head>" print "<body><h1 align=center>" print "<p>Your message has been sent!</body>" print "</html>"
Отредактировано kozlo22 (Июль 2, 2014 22:48:33)
Офлайн
0
Попробуй вот так:
import smtplib from email import message_from_string def send_mail(msg_to, msg_from, subj, body, debbug=False): msg = message_from_string(body) msg['To'] = ', '.join(msg_to) msg['From'] = msg_from msg['Subject'] = subj s = smtplib.SMTP('localhost') if debbug: s.debuglevel = 1 s.sendmail(msg_from, msg_to, msg.as_string()) s.quit() send_mail(msg_to=['mail@mail.com', 'mail@mail.com'], msg_from='mail@mail.com', subj='testing msg', body='Hello!', debbug=True)
Отредактировано agryn (Июль 2, 2014 23:43:07)
Офлайн
857
#!/usr/bin/env python3 import smtplib import email.message host = 'smtp.gmail.com' user = '' pswd = '' addr_from = '@gmail.com' addr_to = '@gmail.com' subj = 'Тест' text = 'Текст.' msg = email.message.Message() msg['from'] = addr_from msg['to'] = addr_to msg['subject'] = subj msg.set_payload(text, 'utf-8') con = smtplib.SMTP_SSL(host) con.login(user, pswd) con.send_message(msg) con.quit()
Офлайн