如何发送电子邮件 python发送邮件的步骤和方法( 二 )

  • 在第 4 行,构造邮件头 To
  • 在第 5 行,构造邮件头 Subject
  • def sendMail(mail):server = smtplib.SMTP_SSL(\"smtp.qq.com\")server.login(fromAddr, password)server.sendmail(fromAddr, toAddr, mail.as_string())server.quit()代码块12345
    • 在第 1 行,函数 sendMail 调用 SMTP 服务发送邮件 mail
    • 在第 2 行,获取 SMTP 服务器,使用 QQ 发送服务
    • 在第 3 行,登录 SMTP 服务
    • 在第 4 行,通过 SMTP 服务器发送服务
    mail = makeMail()sendMail(mail)print(\'发送邮件成功\')代码块123运行程序,在 QQ 邮箱中收到邮件:
    如何发送电子邮件 python发送邮件的步骤和方法

    文章插图
    5. 发送带有附件的邮件5.1 附件 hello.c在当前目录下,创造文件 hello.c,内容如下:
    #include int main(){printf(\"hello\\n\");return 0;}代码块12345675.2 发送带有附件的邮件import smtplibfrom email.header import Headerfrom email.mime.text import MIMETextfrom email.mime.multipart import MIMEMultipart代码块1234
    • 导入 smtplib 用于发送邮件
    • 导入类 Header 和 MIMEText 用于构造邮件
    • 导入类 MIMEMultipart 用于构造带有附件的邮件
    fromAddr =\'zhangsan@qq.com\'password = \'password for smtp\'toAddr =\'zhangsan@qq.com\'subject = \'hello with attachment\'content = \'你好,请查收附件\'代码块12345
    • fromAddr 为发送邮件地址
    • toAddr 为目的邮件地址,设置成与发送邮件地址相同,表示向自己发送一封邮件
    • password 是使用 SMTP 服务的密码,不是 QQ 邮箱的登录密码,请查看第 2 小节
    • subject 是邮件标题
    • content 是邮件内容
    def makeAttachment(filename):file = open(filename, \'rb\')blob = file.read()attachment = MIMEText(blob, \'base64\', \'utf-8\')attachment[\"Content-Type\"] = \'application/octet-stream\'attachment[\"Content-Disposition\"] = \'attachment; filename=\"%s\"\' % filenamereturn attachment代码块1234567
    • 在第 1 行,函数 makeAttachment 构造一个附件
    • 在第 2 行到第 3 行,读取当前目录下的文件 filename 的内容
    • 在第 3 行,构造附件对象 attachment
    • 在第 4 行到第 5 行,设置附件属性
    def makeMail():mail = MIMEMultipart()mail[\'From\'] = Header(fromAddr, \'utf-8\')mail[\'To\'] = Header(toAddr, \'utf-8\')mail[\'Subject\'] = Header(subject, \'utf-8\')mail.attach(MIMEText(content, \'plain\', \'utf-8\'))return mail代码块1234567
    • 在第 1 行,函数 makeMail() 根据 fromAddr、toAddr、subject、content 构造一封邮件
    • 在第 2 行,使用 MIMEMultipart 构造一个带有附件的邮件
    • 在第 3 行,构造邮件头 From
    • 在第 4 行,构造邮件头 To
    • 在第 5 行,构造邮件头 Subject
    • 在第 6 行,设置邮件的正文 content
    def sendMail(mail):server = smtplib.SMTP_SSL(\"smtp.qq.com\")server.login(fromAddr, password)server.sendmail(fromAddr, toAddr, mail.as_string())server.quit()代码块12345
    • 在第 1 行,函数 sendMail 调用 SMTP 服务发送邮件 mail
    • 在第 2 行,获取 SMTP 服务器,使用 QQ 发送服务
    • 在第 3 行,登录 SMTP 服务
    • 在第 4 行,通过 SMTP 服务器发送服务
    mail = makeMail()attachment = makeAttachment(\'hello.c\')mail.attach(attachment)sendMail(mail)print(\'发送邮件成功\')代码块12345
    • 在第 2 行,构造一个附件 hello.c
    • 在第 3 行,将附件加入到邮件中
    运行程序,在 QQ 邮箱中收到邮件:
    如何发送电子邮件 python发送邮件的步骤和方法

    文章插图