Найти - Пользователи
Полная версия: Cgi-скрипт для отправки email
Начало » Python для новичков » Cgi-скрипт для отправки email
1
kozlo22
Хочу при помощи 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>
Выводит поля для заполнения данных (имя. мыло, сообщение), также есть кнопочка, которая все приводит в действие.
В action задаю имя скрипта.
send_mail.cgi
#!/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>"
Сообщение не отправляется.
py.user.next
А где пароль? Без пароля можно было только в прошлом веке отправлять.
kozlo22
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>"
agryn
Попробуй вот так:
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)
py.user.next
#!/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()
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB