Je voulais envoyer des e-mails à plusieurs utilisateurs, j'ai donc écrit une méthode d'envoi, puis lu le fichier en boucle. Je voulais que le destinataire voie que le seul destinataire dans l'e-mail était moi-même, mais les destinataires affichaient toujours plusieurs destinataires. la liste. Le premier destinataire du fichier en voit un et le deuxième destinataire voit les deux premiers comme s'ils étaient ajoutés à la liste. Cependant, lorsque to_addr est imprimé dans l'appel, il n'y a qu'une seule adresse, pas plusieurs adresses. adresse.
Je l'ai envoyé plus tard et j'ai commenté msg['To'] pour éviter d'afficher les destinataires, mais je voulais comprendre pourquoi plusieurs destinataires étaient affichés.
S'il vous plaît, aidez-moi à l'analyser.
#!/usr/bin/python
# -*- coding: UTF-8 -*-
import smtplib
import os
import socket
import commands
from email.mime.text import MIMEText
from email.header import Header
def send(a,b):
user = 'xxxx'
from_addr = 'xxxx@xxxx.com'
password = '***********;'
smtp_server = 'smtp.xxxx.com'
to_addr = b
print "##############"+to_addr
msg['To'] = Header(to_addr, 'utf-8').encode()
server = smtplib.SMTP(smtp_server, 25)
server.set_debuglevel(1)
server.login(user, password)
print '**************'+to_addr
server.sendmail(from_addr, to_addr, a.as_string())
server.close()
if __name__ == '__main__':
msg = MIMEText('内容文字内容文字', 'plain', 'utf-8')
msg['Subject'] = Header(u'我是标题', 'utf-8').encode()
file = open("sample.txt")
#lines=file.readlines()
for i in file:
print i
print "##"
q=send(msg,i)
Cela devrait être fusionné et affiché par la boîte aux lettres elle-même. Vous devez vous connecter à la boîte aux lettres du destinataire pour voir si la liste des destinataires est la même, au lieu de regarder l'expéditeur
.Essayez de faire une sieste ? Dans chaque boucle time.sleep(60)?