我在txt文件中读取了一个电子邮件列表,并从我的smtp服务器发送。
我使用的是From:和To:的相同电子邮件地址,即example@email.com
因此,txt文件中的所有电子邮件都是:example@email.com
我可以收到来自我的txt文件的所有电子邮件。我的问题如下:
主题字段为空白,字段To:看起来像e,x,a,m,p,l,e @,e,m,a,i,l,。,c,o,m而不是示例@ email.com
我做错了什么?
这是我的python代码。
import smtplib
def send_email(TOADDRS):
FROMADDR = "example@email.com"
LOGIN = FROMADDR
PASSWORD = "password"
SUBJECT = "Welcome to Stack Overflow"
server = smtplib.SMTP('smtp.example.com',587)
server.set_debuglevel(1)
server.ehlo()
server.starttls()
server.login(LOGIN, PASSWORD)
msg = ("From: %s\r\nTo: %s\r\nSubject: %s\r\n\r\n"
% (FROMADDR, ", ".join(TOADDRS), SUBJECT) )
msg += """ This a test \r\n"""
server.sendmail(FROMADDR, TOADDRS, msg)
server.quit()
如果名称 ==“主要”:
f= open("email.txt","r")
linea=f.readline()
while linea !="":
send_email(linea)
linea = f.readline()
f.close()
答案 0 :(得分:0)
我认为你这样做有点错误。一种更简单的方法是:
import smtplib
from email.mime.text import MIMEText
with open ("email.txt", "r") as myfile:
while linea !="":
data=myfile.readline().replace('\n', '')
send_email(data)
def send_email(TOADDRS):
FROMADDR = "example@email.com"
LOGIN = FROMADDR
PASSWORD = "password"
SUBJECT = "Welcome to Stack Overflow"
BODY = "Test body"
msg = MIMEText(BODY)
msg['Subject'] = SUBJECT
msg['From'] = 'example@email.com'
msg['To'] = TOADDRS
send = smtplib.SMTP('smtp.example.com',587)
send.set_debuglevel(1)
send.ehlo()
send.starttls()
send.login(LOGIN, PASSWORD)
send.sendmail(msg['From'], msg['To'], msg.as_string())
send.quit()
这是我的头脑,它应该适合你。您可能希望一次将文件中的数据读入列表,然后遍历列表。它会更有效率。我只是想让你看看它应该如何运作。