Python学习笔记——发邮件
1.首先需要注册一个网易的邮箱,开启smtp服务,并使用其授权码
2.发送邮件的Python脚本
#!/usr/bin/python # -*- coding: UTF-8 -*- import smtplib from email.header import Header from email.mime.text import MIMEText # 第三方 SMTP 服务 mail_host = "smtp.163.com" # SMTP服务器 mail_user = "XXX" # 用户名 mail_pass = "XXX" # 授权密码,非登录密码 sender = "XXX@163.com" # 发件人邮箱(最好写全, 不然会失败) receivers = ["XXX@126.com"] # 接收邮件,可设置为你的QQ邮箱或者其他邮箱 content = '我用Python' title = '人生苦短' # 邮件主题 def sendEmail(): message = MIMEText(content, 'plain', 'utf-8') # 内容, 格式, 编码 message['From'] = "{}".format(sender) message['To'] = ",".join(receivers) message['Subject'] = title try: smtpObj = smtplib.SMTP_SSL(mail_host, 465) # 启用SSL发信, 端口一般是465 smtpObj.login(mail_user, mail_pass) # 登录验证 smtpObj.sendmail(sender, receivers, message.as_string()) # 发送 print("mail has been send successfully.") except smtplib.SMTPException as e: print(e) def send_email2(SMTP_host, from_account, from_passwd, to_account, subject, content): email_client = smtplib.SMTP(SMTP_host) email_client.login(from_account, from_passwd) # create msg msg = MIMEText(content, 'plain', 'utf-8') msg['Subject'] = Header(subject, 'utf-8') # subject msg['From'] = from_account msg['To'] = to_account email_client.sendmail(from_account, to_account, msg.as_string()) email_client.quit() if __name__ == '__main__': sendEmail() # receiver = '***' # send_email2(mail_host, mail_user, mail_pass, receiver, title, content)
如果想美化邮件,可以在其中添加html样式,并将邮件的格式指定成html
content = """ <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Email Template</title> <style> body { font-family: Arial, sans-serif; background-color: #f4f4f4; margin: 0; padding: 0; } .container { max-width: 600px; margin: 20px auto; background-color: #ffffff; border: 1px solid #ddd; border-radius: 5px; overflow: hidden; } .header { background-color: #007bff; color: #ffffff; text-align: center; padding: 20px; } .header h1 { margin: 0; font-size: 24px; } .content { padding: 20px; } .content p { margin: 10px 0; line-height: 1.5; color: #333; } .button { display: block; width: 200px; margin: 20px auto; text-align: center; padding: 10px 15px; background-color: #007bff; color: #ffffff; text-decoration: none; border-radius: 5px; font-weight: bold; } .button:hover { background-color: #0056b3; } .footer { background-color: #f4f4f4; text-align: center; padding: 10px; font-size: 12px; color: #666; border-top: 1px solid #ddd; } </style> </head> <body> <div class="container"> <!-- Header Section --> <div class="header"> <h1>Welcome to Our Service</h1> </div> <!-- Content Section --> <div class="content"> <p>Dear [User],</p> <p>Thank you for signing up for our service! We're excited to have you on board. Please click the button below to confirm your email address and get started:</p> <a href="[CONFIRMATION_LINK]" class="button">Confirm Email</a> <p>If you did not sign up for this account, you can safely ignore this email.</p> </div> <!-- Footer Section --> <div class="footer"> © 2024 Your Company. All rights reserved. </div> </div> </body> </html> """ def sendEmail(): message = MIMEText(content, "html", _charset='utf-8') # 内容, 格式, 编码 message['From'] = "{}".format(sender) message['To'] = ",".join(receivers) message['Subject'] = title try: smtpObj = smtplib.SMTP_SSL(mail_host, 465) # 启用SSL发信, 端口一般是465 smtpObj.login(mail_user, mail_pass) # 登录验证 smtpObj.sendmail(sender, receivers, message.as_string()) # 发送 print("mail has been send successfully.") except smtplib.SMTPException as e: print(e)
邮件样式如下
本文只发表于博客园和tonglin0325的博客,作者:tonglin0325,转载请注明原文链接:https://www.cnblogs.com/tonglin0325/p/8978196.html