Python从csv列表发送电子邮件
我是python新手,正在尝试使用smtplib读取值并发送电子邮件。这是我的csv文件的格式-Python从csv列表发送电子邮件,python,python-2.7,python-3.x,Python,Python 2.7,Python 3.x,我是python新手,正在尝试使用smtplib读取值并发送电子邮件。这是我的csv文件的格式- Name,Email,Message A,a@email.com,Message1 B,b@email.com,Message2 C,c@email.com,Message3 我需要拿出一个Python脚本来读取csv列,并从电子邮件列向每个成员发送电子邮件,电子邮件正文中包含相应的消息文本。Python附带了一个很棒的模块,名为smtplib。它用于简单的邮件传输协议 impor
Name,Email,Message
A,a@email.com,Message1
B,b@email.com,Message2
C,c@email.com,Message3
我需要拿出一个Python脚本来读取csv列,并从电子邮件列向每个成员发送电子邮件,电子邮件正文中包含相应的消息文本。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")
导入smtplib
发送者from@fromdomain.com'
接收者=['to@todomain.com']
message=“”发件人:发件人
致:致人
主题:SMTP电子邮件测试
这是一封测试电子邮件。
"""
尝试:
smtpObj=smtplib.SMTP('localhost')
smtpObj.sendmail(发送者、接收者、消息)
打印(“成功发送电子邮件”)
除SMTPException外:
打印(“错误:无法发送电子邮件”)
代码信用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")
导入smtplib
发送者from@fromdomain.com'
接收者=['to@todomain.com']
message=“”发件人:发件人
致:致人
主题:SMTP电子邮件测试
这是一封测试电子邮件。
"""
尝试:
smtpObj=smtplib.SMTP('localhost')
smtpObj.sendmail(发送者、接收者、消息)
打印(“成功发送电子邮件”)
除SMTPException外:
打印(“错误:无法发送电子邮件”)
代码信用假设您使用的是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-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()
SMTP是一个很好的模块,但用户友好程度不高 试着让一切变得简单一点 在您的情况下,我将使用:
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)
SMTP是一个很好的模块,但用户友好程度不高 试着让一切变得简单一点 在您的情况下,我将使用:
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)
@user455580乐于助人:)@user455580乐于助人:)