欢迎访问宙启技术站
智能推送

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类。