Python 2.7—我使用smtplib向多人发送邮件,但发送的邮件中的主题行并没有反映在每封邮件中

Python 2.7—我使用smtplib向多人发送邮件,但发送的邮件中的主题行并没有反映在每封邮件中,python,smtplib,Python,Smtplib,我使用smtplib向多个用户发送邮件,我从mail.txt读取电子邮件ID,从names.txt文件读取收件人姓名,从subject.txt文件读取主题 不知何故,主题并没有反映在所有电子邮件中,只有最后发送的邮件有主题,而其他邮件没有。但是当我在每次迭代中打印主题时,我不知道为什么会发生这种情况。我试图更改收据的数量并进行检查,但问题没有解决。我还试图将import语句保持在循环之外。 你能帮我查一下这个密码吗 代码: ob1 = open("names.txt","r") fname =

我使用smtplib向多个用户发送邮件,我从
mail.txt
读取电子邮件ID,从
names.txt
文件读取收件人姓名,从
subject.txt
文件读取主题

不知何故,主题并没有反映在所有电子邮件中,只有最后发送的邮件有主题,而其他邮件没有。但是当我在每次迭代中打印主题时,我不知道为什么会发生这种情况。我试图更改收据的数量并进行检查,但问题没有解决。我还试图将import语句保持在循环之外。 你能帮我查一下这个密码吗

代码:

ob1 = open("names.txt","r")
fname = ob1.readlines()
ob1.close()
ob2 = open("mail.txt","r")
email = ob2.readlines()
ob2.close()
ob3 = open("subject.txt","r")
aname = ob3.readlines()
ob3.close()
for i in range(len(fname)): 
   import smtplib
   from email.MIMEMultipart import MIMEMultipart
   from email.MIMEText import MIMEText

   msg = MIMEMultipart()
   msg['From'] = 'my_email_id'
   msg['To'] = email[i]
   msg['Subject'] = aname[i]
   message = 'some mail text'
   msg.attach(MIMEText(message))

   mailserver = smtplib.SMTP('smtp.gmail.com',587)
   mailserver.ehlo()
   mailserver.starttls()
   mailserver.ehlo()
   mailserver.login('my_email_id', '******')

   mailserver.sendmail('my_email_id',email[i],msg.as_string()) 

   mailserver.quit()

您的代码有一些地方出错。首先,所有的ob1..ob3.open()/.close()应该被
替换为open(“…txt”,“r”)作为ob1:
。你真的不应该在你的循环中导入东西。你能提供你的txt文件的样本吗?谢谢此外,邮件服务器ehlo、登录和退出当然也应该在循环之外。您的代码有一些问题。首先,所有的ob1..ob3.open()/.close()应该被
替换为open(“…txt”,“r”)作为ob1:
。你真的不应该在你的循环中导入东西。你能提供你的txt文件的样本吗?谢谢此外,mailserver ehlo、login和quit当然应该在循环之外。