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

Tin*_*inc 2 python email excel

有人可以帮我从交换帐户发送电子邮件并添加附件吗?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()
Run Code Online (Sandbox Code Playgroud)

Mar*_*oma 6

这是您发送带有附件的电子邮件的方式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)
Run Code Online (Sandbox Code Playgroud)

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