当前位置: 首页 > 后端技术 > Python

PythonSMTP发送邮件的方法

时间:2023-03-26 19:27:47 Python

很多情况下,使用Python发送邮件可能无法使用邮件服务器提供的API,因为并不是所有的邮件服务商都会提供API给客户使用。使用电子邮件API发送电子邮件通常需要额外付费。因此,我们在测试发送邮件时,可能需要SMTP邮件发送服务,一般所有邮件服务商都会提供。要使用SMTP邮件发送服务,您需要填写和测试以下信息:SMTP邮件服务器地址、端口、登录用户名和登录用户密码收发邮件的地址邮件的主题和正文看起来有点复杂,其实Python提供了一个sendmail方法,在smtplib库中。只需按照以下步骤操作。构建消息对象Python中有一个名为MIMEMultipart的库,我们可以使用它来构建消息对象。要做的事情相对简单。定义完MIMEMultipart对象后,需要在这个对象中设置发送给谁,发送给谁,主题是什么。然后向这个对象中插入文本,可以插入HTML或者纯文本。为了让邮件更加美观,我们通常会插入HTML文本,很多时候,我们也可能会使用模板来插入更多的数据。发送邮件定义了消息对象后,我们就可以发送邮件了。在发送邮件之前,我们需要初始化SMTP对象,通常使用smtplib.SMTP(smtpserver)方法。在这个方法中,我们将定义发送邮件服务器的地址和端口。那么我们可能会调用一个starttls方法,这个方法是希望发送邮件的服务器使用的是TLS模式。随着技术的进步和安全方面的考虑,很多邮件发送服务器都要求使用TLS方式发送。然后使用server.login(email_user,email_passwd)方法登录服务器。以上步骤完成后,我们就完成了你的Python代码与邮件服务器的通信。这时候你的代码就会拿到服务器的对象,完成对象的初始化。这一步完成后,就可以调用sendmail函数发送邮件了。邮件发送完毕后,不要忘记关闭与邮件服务器的连接。#连接到SMTP服务器server=smtplib.SMTP(smtpserver)server.starttls()server.login(email_user,email_passwd)sending_response=server.sendmail(from_addr,to_addr,message.as_string())print(sending_response)server.quit()上面的发送服务可以参考上面提供的伪代码。完整测试代码请参考GitHub上:python-tutorials/SendMailSMTP.pyatmaster·cwiki-us-docs/python-tutorials·GitHubHighlights用Python发送邮件的服务比较简单。因为所有的邮件发送服务都需要与第三方邮件服务器进行通信,所以在这个通信过程中最重要的一步就是首先获取邮件服务器的链接。通常此链接有防火墙,发送用户名限制、密码要求等可能会导致连接失败,无法获取连接到服务器的对象。具体情况下遇到的具体问题具体分析就可以了。遵循的原则和步骤是:建立消息,获取服务器连接,发送邮件,关闭服务器连接。需要注意的是,不要忘记关闭服务器连接。https://www.ossez.com/t/python-smtp/13403