I am trying to get the results of a MYSQL query into the body of an email and also as a csv or xls attachment.
My code below works and sends the email only problem is if the results from the MYSQL query are more than a row only the first row shows up in the email.
import smtplib
from email.MIMEMultipart import MIMEMultipart
from email.MIMEBase import MIMEBase
from email.MIMEText import MIMEText
from email import Encoders
import os
import MySQLdb
import string
import datetime
import time
today = (time.strftime("%m/%d/%Y"))
#print today
db = MySQLdb.connect(host="-----.com", # your host, usually localhost
user="----", # your username
passwd="-------", # your password
db="dailies") # name of the data base
cursor49=db.cursor()
cursor49.execute("SELECT PLACEMENT_NAME FROM dailies.pub_cpm join placement ON placement.PLACEMENT_id = pub_cpm.PLACEMENT_ID where date(pub_cpm.created) = date(now())")
results49 = cursor49.fetchone()
# Commit your changes in the database
db.commit()
# disconnect from server
db.close()
results50 = "Latest Pub CPM Name(s): %s" % (results49)
gmail_user = "------@gmail.com"
gmail_pwd = "g---a"
mailServer = smtplib.SMTP("smtp.gmail.com", 587)
to = ['-----@g-----']
msg = MIMEMultipart()
msg['From'] = gmail_user
msg['To'] = ", ".join(to)
msg['Subject'] = "Database Alerts: %s" % (today)
body = results50
msg.attach(MIMEText(body, 'plain'))
mailServer.ehlo()
mailServer.starttls()
mailServer.ehlo()
text = msg.as_string()
mailServer.login(gmail_user, gmail_pwd)
mailServer.sendmail(gmail_user, to, text)
# Should be mailServer.quit(), but that crashes...
mailServer.close()