如何使用python通过我的hotmail.com帐户自动发送电子邮件?

时间:2018-10-20 16:50:15

标签: python microsoft-graph

所以我一直在尝试使用@ hotmail.com帐户以编程方式发送电子邮件。

到目前为止,我已经成功完成了什么:

  1. https://apps.dev.microsoft.com/#/appList处创建一个应用,并具有:
    1. 应用程序ID
    2. “应用程序秘密”下的密码
    3. 在plaftorms下,我添加了一个Web和一个本机应用程序
    4. 在图的权限下,我已获得“ Mail.Send”和“ User.Read”的委派权限
  2. 我已经成功运行了this代码以通过浏览器发送电子邮件。
    1. 但是,在身份验证过程中,我被要求登录。

问题如下:

如何通过python和使用@ hotmail.com帐户发送电子邮件,而不必每次都提供任何登录凭据?

理想的解决方案是使用简单的sendmail(to, subject, body)(或类似名称)和带有应用专用密码的配置文件(我想我已经拥有了)。

最初,我希望从上面的链接(重复here)中浏览示例python代码,并尝试对其进行调整,但这并不是正确的方法,因为示例代码需要通过浏览器。

1 个答案:

答案 0 :(得分:1)

from email import encoders
from email.message import Message
from email.mime.audio import MIMEAudio
from email.mime.base import MIMEBase
from email.mime.image import MIMEImage
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText

def SendEmail():
    s = smtplib.SMTP('smtp.gmail.com', 587) #Change smtp for Outlook
    s.starttls()
    s.login(EmailGoesHere, PASSWORDHere)

    msg = MIMEMultipart()       # create a message

    # add in the actual person name to the message template
    message = '''
        Message Goes here
    '''

    # Prints out the message body for our sake
    # print(message)

    # setup the parameters of the message
    msg['From']=MY_ADDRESS
    msg['To']='ecesisproduction@gmail.com'
    msg['Subject']="Marketplace order Accepted!"

    # add in the message body
    msg.attach(MIMEText(message, 'plain'))

    # send the message via the server set up earlier.
    s.send_message(msg)

    # Terminate the SMTP session and close the connection
    s.quit()