Python从csv lis发送电子邮件

2024-09-25 02:30:19 发布

您现在位置:Python中文网/ 问答频道 /正文

我是python新手,正在尝试使用smtplib读取值发送电子邮件。这是我的csv文件格式-

Name,Email,Message  
A,a@email.com,Message1  
B,b@email.com,Message2  
C,c@email.com,Message3  

我需要一个Python脚本来读取csv列,并从email列向每个成员发送电子邮件,邮件正文中包含相应的消息文本


Tags: csvname脚本commessage电子邮件email邮件
3条回答

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) 

假设您使用的是Python-2.x

您可以使用smtplib模块发送电子邮件,csv模块读取csv文件。在

此外,要使用smtplib,您必须有一个用于发送电子邮件的电子邮件地址,无论电子邮件是Yahoo mail或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

相关问题 更多 >