2015-08-24 6 views
-1

Есть ли способ отправить электронные письма всем адресам электронной почты в базе данных через циклы? Я не очень уверен в петлях и нуждаюсь в помощи.Отправка электронной почты в python через цикл

Я следил за этим page для электронной почты. SQL заявление будет select email from table name

import smtplib 

SERVER = "localhost" 

FROM = "[email protected]" 
TO = ["[email protected]"] 

SUBJECT = "Hello!" 

TEXT = "This message was sent with Python's smtplib." 

# Prepare actual message 
message = """\ 
From: %s 
To: %s 
Subject: %s 

%s 
""" % (FROM, ", ".join(TO), SUBJECT, TEXT) 

# Send the mail 

server = smtplib.SMTP(SERVER) 
server.sendmail(FROM, TO, message) 
server.quit() 
+0

https://docs.python.org/2/tutorial/controlflow.html#for-statements Это должно объяснять для циклов. В какой части этого процесса вам нужна помощь? – ballsatballsdotballs

+0

Потому что было бы много писем из базы данных, и я хотел отправить электронную почту на все адреса с помощью циклов for. Например, когда я пишу запрос 'cur1 = con.cursor (mdb.cursors.DictCursor) cur1.execute (" Выберите nextofkin.email from nextofkin, messageDetails где messageDetails.sender_number = LAST_INSERT_ID (messageDetails.sender_number) ") ​​ con. совершить() последний = cur1.fetchall() #print "% S" % в прошлом для строки в прошлом: \t печать "% S" % (строка [ "электронная почта"]) ' – Skyee

ответ

1

Вы должны загрузить и импортировать правильный интерфейс базы данных. (MySQL или SQL Server и т.д.)
Затем сделать что-то вроде этого:

import smtplib 
    import MySQLdb 

    SERVER = "localhost" 

    FROM = "[email protected]" 
    TO = ["[email protected]","[email protected]","[email protected]"] 

    #SQL data access part 
    db = MySQLdb.connect(host='localhost', user='root', passwd='$$', db='emaildatabase') 
    cursor = db.cursor() 
    cursor.execute('select email from tablename where email is not null') 
    db.commit() 
    rows = cursor.fetchall() 
    for item in rows: 
     TO.append(item) 

    SUBJECT = "Hello!" 

    TEXT = "This message was sent with Python's smtplib." 

    # Prepare actual message 
    message = """\ 
    From: %s 
    To: %s 
    Subject: %s 

    %s 
    """ % (FROM, ", ".join(TO), SUBJECT, TEXT) 

    # Send the mail 

    server = smtplib.SMTP(SERVER) 
    server.sendmail(FROM, TO, message) 
    server.quit() 

Позвольте мне знать, если вы не понимаете.

+0

Привет спасибо. Но что, если я хочу сразу отправить адреса, полученные из баз данных? – Skyee

+0

Надеюсь, я правильно вас понимаю, но тогда я бы изменил эту часть: TO = ["[email protected]", "[email protected]", "[email protected]"]: TO = [] –

+0

Используете ли вы SQL Server или MySQL? –

Смежные вопросы