【发布时间】:2021-02-04 01:10:09
【问题描述】:
我有一个 csv 文件,其中一列是名称,另一列是电子邮件。我必须将电子邮件发送给 csv 中列出的所有成员,他们的名字来自消息中的名称列。还有一些名字没有电子邮件,所以我想忽略那个名字。 This is how my csv file looks like
所以,我尝试了这段代码。它单独向每个成员发送电子邮件,但向每个电子邮件地址发送相同的名称,即最后一个。
谁能帮我解决这个问题...?
import numpy as np
import matplotlib.pyplot as plt
import pandas as pd
import csv
import smtplib
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
from email import *
from itertools import islice
df=pd.read_csv("emails.csv")
df.isnull()
df.isnull().sum()
df['email'].fillna("NO Email",inplace=True)
X=df.iloc[:,2].values
y=df.iloc[:,0].values
FROM= "mail@gmail.com"
TO=X
password=input("enter password:")
message= MIMEMultipart()
message['From'] = FROM
message['Subject'] = "subject line"
server = smtplib.SMTP('smtp.gmail.com', 587)
server.starttls()
server.login(FROM,password)
for j in TO:
if(j=="NO Email"):
#i_iter=iter(i)
print("No email found ")#+ next(islice(i_iter,1)))
for i in y:
#next(i_iter)
print("Name skip")
continue
else:
i=0
for i in range(len(y)):
message = MIMEText("""hii..........{}""".format(y[i]))
#i+=1
print("Login success")
server.sendmail(FROM,j,message.as_string())
print("email has been send to ",j)
【问题讨论】:
标签: python pandas csv email smtp