Я новичок от ie до python и пытаюсь прочитать адреса электронной почты из текстового файла, объединяя 100 адресов электронной почты и инициируя отправку электронной почты из почтового ящика Outlook на все эти объединенные адреса электронной почты, сохраняя их в b cc. В надежде увеличить лимит с 500 до 600 в будущем, поскольку поле b cc способно хранить около 700 адресов электронной почты.
При тестировании этого скрипта я столкнулся с проблемой, если я объединю более 5 адресов электронной почты.
поднять SMTPRecipientsRefused (senderrs)
smtplib.SMTPRecipientsRefused: {': (421, b'4.7.0 Слишком много ошибок протокола (6) в этом соединении, закрытие канала передачи . ')}
Ниже приведен шаблон кода. Во время поиска в Google я заметил, что поле b cc должно быть списком, в котором я назначаю строку объединенных писем. Может ли это быть единственной причиной или будут другие возможности?
import smtplib
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
Recipient=""
message="Sample email content"
def TriggerEmail(): # connecting with outlook mailbox and trigger email by having 100 email addresses in bcc
smtpserver = smtplib.SMTP(host='smtpserver.org.net', port=587)
smtpserver.ehlo()
smtpserver.starttls()
smtpserver.ehlo()
smtpserver.login('mailbox_user_id','mailbox_password')
emailFrom = 'Mailbox_name@org.com'
global Recipient
global message
msg = MIMEMultipart()
msg['From'] = emailFrom
msg['Bcc'] = Recipient
msg['Subject'] = "Sample Email Subject"
msg.attach(MIMEText(message,'plain'))
smtpserver.send_message(msg)
del msg
smtpserver.quit()
def main():
intCount = 0
flg = True
global Recipient
with open("EmailAddresses.txt", "r") as f: #reading hundreads of email addresses from the text file (one row has one email address)
for line in f:
if intCount < 100: # concatenating 100 email addresses and then trigger email once 100 email addresses are concatenated
if Recipient == "":
Recipient = line.strip()
else:
Recipient += "," + line.strip()
intCount += 1
flg = True
else:
TriggerEmail()
Recipient = line.strip()
intCount = 1
flg = False
if (flg):
TriggerEmail()
if __name__ == '__main__':
main()
Я использую Python 3.6. Я пробовал запускать сценарий из Git bash, а также через Anaconda (используя Spyder).
Благодарю за вашу помощь!
Спасибо.