python pytest框架发送邮件
时间: 2024-06-29 11:00:29
浏览: 12
Python的pytest是一个流行的[单元测试](https://geek.csdn.net/educolumn/ba94496e6cfa8630df5d047358ad9719?dp_token=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpZCI6NDQ0MDg2MiwiZXhwIjoxNzA3MzcxOTM4LCJpYXQiOjE3MDY3NjcxMzgsInVzZXJuYW1lIjoid2VpeGluXzY4NjQ1NjQ1In0.RrTYEnMNYPC7AQdoij4SBb0kKEgHoyvF-bZOG2eGQvc&spm=1055.2569.3001.10083)框架,主要用于编写和运行测试代码,确保程序的正确性。如果你需要在pytest测试中发送电子邮件,通常会用到第三方库如`smtplib`(用于发送邮件的SMTP[协议](https://geek.csdn.net/educolumn/036f533958d9baf75220e71cff26d527?spm=1055.2569.3001.10083))或者更高级的库如`selenium-requests`(结合了requests和selenium的邮件[功能](https://geek.csdn.net/educolumn/0cf712bbe06919ce80efc8d763fefd03?spm=1055.2569.3001.10083))。然而,pytest本身并不直接支持邮件发送,它是专注于测试的。
以下是一个使用`smtplib`在pytest中发送简单邮件的基本示例:
```python
import smtplib
from email.mime.text import MIMEText
def test_send_email():
sender = "[email protected]"
receiver = "[email protected]"
password = "your-password" # 可以从环境变量或配置文件获取
subject = "pytest test email"
body = "This is a test email sent from pytest."
msg = MIMEText(body)
msg['Subject'] = subject
msg['From'] = sender
msg['To'] = receiver
server = smtplib.SMTP('smtp.example.com', 587) # 邮箱[服务端](https://geek.csdn.net/educolumn/138b997f54b66bf1827ffa55b42cc8a4?spm=1055.2569.3001.10083)
server.starttls() # 加密连接
server.login(sender, password)
server.sendmail(sender, receiver, msg.as_[string](https://geek.csdn.net/edu/8802d631b97a4a6af1f4d0bbf8527465?dp_token=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpZCI6NDQ0MDg2MiwiZXhwIjoxNzA3MzcxOTM4LCJpYXQiOjE3MDY3NjcxMzgsInVzZXJuYW1lIjoid2VpeGluXzY4NjQ1NjQ1In0.RrTYEnMNYPC7AQdoij4SBb0kKEgHoyvF-bZOG2eGQvc&spm=1055.2569.3001.10083)())
server.quit()
print("Email sent successfully.")
except Exception as e:
print(f"Failed to send email: {e}")
# 在pytest中执行这个测试
def test_suite():
test_send_email()
```