我如何发送附有Python和Microsoft Exchange附件的电子邮件?

有人可以帮我从我的交换账户发送电子邮件,并添加附件。 SMTP不起作用,我得到即时超时问题。 0365不会将副本保存到我发送的文件夹中。 我唯一知道的另一个是exchangelib

 from exchangelib import Account, Credentials, Message, Mailbox, FileAttachment from email.mime.multipart import MIMEMultipart from email.mime.base import MIMEBase from email.mime.text import MIMEText from email.utils import formatdate from email import encoders email = 'XXXXXXXX' password = 'XXXXXXXX' a = Account(email, credentials=Credentials(email, password), autodiscover=True) dir_path = ('C:/Users/Istcrmt/Documents/Python/PythonforAnaconda3.5/') excel_name = 'test.xlsx' #attach an excel file: for i in email_list.itertuples(): # if you want a copy in the 'Sent' folder m = Message( account=a ,folder=a.sent ,subject=(i.AGENCY_NAME + ' I made an email script.') ,body='All bodies are beautiful' ,to_recipients=[Mailbox(email_address=i.NEW_MAIL)]) #attach files m.attachments.append(part) # m.attach(cover_letter) m.send_and_save() 

这是你如何发送带有exchangelib附件的电子邮件:

 from exchangelib import ServiceAccount, Configuration, Account, DELEGATE from exchangelib import Message, Mailbox, FileAttachment from config import cfg # load your credentials def send_email(account, subject, body, recipients, attachments=None): """ Send an email. Parameters ---------- account : Account object subject : str body : str recipients : list of str Each str is and email adress attachments : list of tuples or None (filename, binary contents) Examples -------- >>> send_email(account, 'Subject line', 'Hello!', ['info@example.com']) """ to_recipients = [] for recipient in recipients: to_recipients.append(Mailbox(email_address=recipient)) # Create message m = Message(account=account, folder=account.sent, subject=subject, body=body, to_recipients=to_recipients) # attach files for attachment_name, attachment_content in attachments or []: file = FileAttachment(name=attachment_name, content=attachment_content) m.attach(file) m.send_and_save() credentials = ServiceAccount(username=cfg['user'], password=cfg['password']) config = Configuration(server=cfg['server'], credentials=credentials) account = Account(primary_smtp_address=cfg['smtp_address'], config=config, autodiscover=False, access_type=DELEGATE) # Read attachment attachments = [] with open('filestorage/numbers-test-document.pdf', 'rb') as f: content = f.read() attachments.append(('whatever.pdf', content)) # Send email send_email(account, 'Test 14:35', 'works', ['themoosemind@gmail.com'], attachments=attachments) 

相关: 从Exchange Server读取电子邮件并下载附件