首页 > 编程知识 正文

python发送邮件简单示例的简单介绍

时间:2023-12-27 22:26:57 阅读:325236 作者:BOGL

本文目录一览:

python的发送邮件代 import poplib # 输入邮件地址, 口令和POP3服务器地址

不是很理解,你是要把收邮件改成发邮件吗?

发邮件用的是smtp服务,然后填的是smtp服务器地址,然后是一个收件人地址

import smtplib

然后发邮件的示例代码如下

#!/usr/bin/python

# -*- coding: UTF-8 -*-

 

import smtplib

from email.mime.text import MIMEText

from email.utils import formataddr

 

my_sender='429240967@qq.com'    # 发件人邮箱账号

my_pass = 'xxxxxxxxxx'              # 发件人邮箱密码

my_user='429240967@qq.com'      # 收件人邮箱账号,我这边发送给自己

def mail():

    ret=True

    try:

        msg=MIMEText('填写邮件内容','plain','utf-8')

        msg['From']=formataddr(["FromRunoob",my_sender])  # 括号里的对应发件人邮箱昵称、发件人邮箱账号

        msg['To']=formataddr(["FK",my_user])              # 括号里的对应收件人邮箱昵称、收件人邮箱账号

        msg['Subject']="菜鸟教程发送邮件测试"                # 邮件的主题,也可以说是标题

 

        server=smtplib.SMTP("smtp.qq.com", 25)  # 发件人邮箱中的SMTP服务器,端口是25

        server.login(my_sender, my_pass)  # 括号中对应的是发件人邮箱账号、邮箱密码

        server.sendmail(my_sender,[my_user,],msg.as_string())  # 括号中对应的是发件人邮箱账号、收件人邮箱账号、发送邮件

        server.quit()  # 关闭连接

    except Exception:  # 如果 try 中的语句没有执行,则会执行下面的 ret=False

        ret=False

    return ret

 

ret=mail()

if ret:

    print("邮件发送成功")

else:

    print("邮件发送失败")

python批量发送邮件--包括批量不同附件

小猪在公司做出纳,干的活却包括了出纳、会计、结算专员等工作,周末都要被无奈在家加班,主要还没有加班费,简直是被公司严重压榨。每个月初都要给每个工长发预付款账单邮件,月中发结算款账单。重复性机械工作。

一个及格线上的程序员,最起码的觉悟就是将重复性的机械工作自动化,于是,在我花了一个多小时,帮她给一部分工长发了一次邮箱后,默默的回来写了这个脚本。

所以,设计要点就是一个字—— 懒 。

恩,就酱。

经过我观察,邮件内容分为两种,这里先说第一种,“结算款”:

(1) 邮件内容(content)不变,为固定的txt文本

(2) 附件(attch)为每个工长的结算账单(excel文件.xlsx),此文件命名为总账单中自动分割出来的名字(暂时不懂怎么分割出来的=.=),格式为:

(3) 邮件主题(Subject)为附件名(不带后缀名)

(4) 邮件接收对象(工长)的名单及其邮箱地址基本不变,偶尔变动

(5)

(1) 将工长及其邮箱地址存为CSV文件的两列,python中将其读取为字典形式,存储以供后续查询邮箱地址。

(2) 遍历文件夹中的附件(.xlsx类型文件),对其进行两种操作,一方面将其名字(不带路径和后缀)提取出来,作为邮件主题(Subject),并对Subject进一步划分,得到其中的人名(工长);另一方面,将其传入MIMEbase模块中转为邮件附件对象。

(3) 由上述得到的人名(name),在字典形式的通讯录中,查找相应的地址(value),即为收件人名称和地址

(4) 利用python中的email模块和smtp模块,登录自己的邮箱账号,再对每个附件,得到的收件人名和地址,添加附件,发送邮件。done

在设计过程中有几点需要注意

(1) 有时一个邮件地址对应两个人名,此时应该在CSV文件中分为两行存储,而不是将两个人名存为同一个键;

(2)有账单.xlsx文件,通讯录里却没存储此人记录,程序应该打印提示没有通讯记录的人名,且不能直接退出,要保证员工看到此提示,此第一版程序还有解决此问题;

(3)此程序发送的邮件内容为纯文本,若要求邮件内容有不同格式(如部分加粗,部分红色),还有小部分需要每次更改的地方(如邮件内容包含当前月份),如何解决?(这就是第二种邮件内容,“预算款”);

(4)重名的,暂时还没碰到,程序中也没给出解决方案。

第一版到此,20180830,待更新

第二版更新,20180904

第三版更新,20180909

转战CSDN博客,更多博客见传送门《 xiaozhou的博客主页 》

如何在python程序中发邮件

比如我用自己的 139 邮箱 lucia_gaga@139.com

发送邮件到网易邮箱 也是我的办公邮箱 lu.han@beebank.com

以下代码调试通过:

# coding: utf-8

import smtplib

from email.mime.text import MIMEText

from email.header import Header

sender = 'lucia_gaga@139.com'

receiver = 'lu.han@beebank.com'

subject = 'python email test'

smtpserver = 'smtp.139.com'

username = 'lucia_gaga@139.com'

password = 'xxxxxxxx'

msg = MIMEText('你好 lucia 这是你的第一封 python 发出的邮件', 'text', 'utf-8')  

# 中文需参数‘utf-8',单字节字符不需要

msg['Subject'] = Header(subject, 'utf-8')

smtp = smtplib.SMTP()

smtp.connect('smtp.139.com')

smtp.login(username, password)

smtp.sendmail(sender, receiver, msg.as_string())

smtp.quit()

运行结果:

如何用Python发邮件

一般最好有个smtp服务器,比如说你在163注册个邮箱,这样可以用smtplib通过这个邮箱来发送。以下是示例:

#-*- coding:utf8 -*-

import smtplib

import email

import mimetypes

from email.MIMEMultipart import MIMEMultipart

from email.mime.text import MIMEText

mail_host="smtp.163.com"

mail_user="yourusername"

mail_pass="yourpassword"

mail_postfix="mail.163.com"

def sendmail(to_list,sub,con):

"""发送邮件

"""

# translation

me = mail_user+""+mail_user+"@"+mail_postfix+""

msg = MIMEMultipart('related')

msg['Subject'] = email.Header.Header(sub,'utf-8')

msg['From'] = me

msg['To'] = ";".join(to_list)

msg.preamble = 'This is a multi-part message in MIME format.'

msgAlternative = MIMEMultipart('alternative')

msgText = MIMEText(con, 'plain', 'utf-8')

msgAlternative.attach(msgText)

msg.attach(msgAlternative)

try:

s = smtplib.SMTP()

s.connect(mail_host)

s.login(mail_user,mail_pass)

s.sendmail(me, to_list, msg.as_string())

s.quit()

except Exception,e:

return False

return True

if __name__ == '__main__':

if sendmail(['test@test.com'],"测试","测试"):

print "Success!"

else:

print "Fail!"

如果要不经过邮件系统直接发,通常会被当作垃圾邮件扔了,所以还是这样吧。

Python向多人发送、抄送带附件的邮件(含详细代码)

python要发送带附件的邮件,首先要创建MIMEMultipart()实例,然后构造附件,如果有多个附件,可依次构造,最后使用smtplib.smtp发送。

步骤:

(1)设置服务器所需信息(ps:部门邮箱密码为授权码,需自行登录相应邮箱设置授权码)

(2)设置email信息

(3)附件部分

(4)登录邮箱并发送邮件

附上源码:

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。