python实现126邮箱发送邮件的方法
发布时间:2023-05-18 17:41:33
在Python中,我们可以使用smtplib模块来实现126邮箱的邮件发送。
首先,我们需要先导入smtplib模块:
import smtplib
接着,登录邮箱并进行认证:
mail_host = 'smtp.126.com' mail_user = 'your_email@126.com' # 发送邮件的邮箱 mail_pass = 'your_password' # 邮箱授权码 smtp_obj = smtplib.SMTP() smtp_obj.connect(mail_host, 25) smtp_obj.login(mail_user, mail_pass)
上述代码中,mail_host需要根据你使用的邮箱进行修改。mail_user和mail_pass分别是你的邮箱账号和授权码,可以在126邮箱中的设置中获取。smtp_obj是smtplib.SMTP()的一个实例,connect方法连接邮箱服务器并进行验证,login方法进行认证。
接下来,我们需要构造邮件内容:
from email.mime.text import MIMEText email_content = 'This is the content of the email.' msg = MIMEText(email_content, 'plain', 'utf-8') msg['From'] = mail_user msg['To'] = 'recipient_email@xxx.com' # 收件人邮箱 msg['Subject'] = 'This is the subject of the email.'
上述代码中使用了email.mime.text模块中的MIMEText类来创建邮件内容。email_content是邮件内容,msg变量是MIMEText类的一个实例,'plain'表示邮件内容为纯文本,'utf-8'表示使用utf-8编码。msg['From']表示发送者的邮箱,msg['To']表示收件人的邮箱,msg['Subject']表示邮件主题。
最后,我们需要发送邮件:
smtp_obj.sendmail(mail_user, ['recipient_email@xxx.com'], msg.as_string()) smtp_obj.quit()
上述代码中使用了sendmail方法来发送邮件, 个参数是发送者的邮箱,第二个参数是收件人的邮箱(可以传入一个列表来发送给多个收件人),第三个参数是邮件内容,使用msg.as_string()转换为字符串格式。最后使用quit方法退出邮件服务器。
完整代码如下:
import smtplib from email.mime.text import MIMEText mail_host = 'smtp.126.com' mail_user = 'your_email@126.com' # 发送邮件的邮箱 mail_pass = 'your_password' # 邮箱授权码 smtp_obj = smtplib.SMTP() smtp_obj.connect(mail_host, 25) smtp_obj.login(mail_user, mail_pass) email_content = 'This is the content of the email.' msg = MIMEText(email_content, 'plain', 'utf-8') msg['From'] = mail_user msg['To'] = 'recipient_email@xxx.com' # 收件人邮箱 msg['Subject'] = 'This is the subject of the email.' smtp_obj.sendmail(mail_user, ['recipient_email@xxx.com'], msg.as_string()) smtp_obj.quit()
需要注意的是,这种方式发送的邮件可能会被识别为垃圾邮件, 在正式使用之前进行测试。如果需要发送带有附件的邮件,可以使用email.mime.multipart模块中的MIMEMultipart类。
