[英]Python send email from a csv list
我是python的新手,正在嘗試讀取值,使用smtplib發送電子郵件。 這是我的csv文件的格式-
Name,Email,Message
A,a@email.com,Message1
B,b@email.com,Message2
C,c@email.com,Message3
我需要提出一個Python腳本,該腳本讀取csv列,並從電子郵件列中向每個成員發送電子郵件,並在電子郵件正文中包含相應的消息文本
假設您使用的是Python-2.x。
您可以使用smtplib
模塊發送電子郵件,並使用csv
模塊讀取csv文件。
此外,要使用smtplib
,無論電子郵件是Yahoo郵件還是Gmail或任何其他郵件,您都必須具有用於發送電子郵件的電子郵件地址。
一些示例代碼如下:
#!/usr/bin/python
import csv
import smtplib
from email.mime.text import MIMEText
from email.Header import Header
def sendmail(info_list):
msg = MIMEText(info_list[2], "html", "utf-8")
msg['Subject'] = Header("YOUR SUBJECT", "utf-8")
msg['From'] = "FROM_WHOM@XXX.com"
msg['To'] = info_list[1]
s = smtplib.SMTP("smtp.XXX.com")
s.ehlo()
s.starttls()
s.login("YOUR EMAIL USERNAME", "YOUR EMAIL PASSWORD")
s.sendmail("FROM_WHOM", info_list[1], msg.as_string())
def main():
with open("msg.csv", "rb") as csvfile:
msg_reader = csv.reader(csvfile)
msg_reader.next()
map(lambda x: sendmail(x), msg_reader)
if __name__ == "__main__":
main()
Python附帶了一個很棒的模塊,名為smtplib。 它用於簡單郵件傳輸協議。
import smtplib
sender = 'from@fromdomain.com'
receivers = ['to@todomain.com']
message = """From: From Person <from@fromdomain.com>
To: To Person <to@todomain.com>
Subject: SMTP e-mail test
This is a test e-mail message.
"""
try:
smtpObj = smtplib.SMTP('localhost')
smtpObj.sendmail(sender, receivers, message)
print("Successfully sent email")
except SMTPException:
print("Error: unable to send email")
代碼信用http://www.tutorialspoint.com/python/python_sending_email.htm
SMTP是一個很棒的模塊,但不是那么用戶友好。
yagmail試圖使這一切變得容易一些。
在您的情況下,我將使用:
import yagmail
yag = yagmail.Connect('username', 'password')
with open("msg.csv", "rb") as csvfile:
csv_reader = csv.reader(csvfile)
csv_reader.next()
for line in csv_reader:
for name, email, message in line.strip().split(','):
yag.send(email, subject = name, contents = message)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.