python 发邮件的脚本

不加参数,可以 输出帮助 ,及使用方法。

秘送的也是成功的。在收件与抄送 不会显示。

# coding: utf-8
import sys
import os
import smtplib
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
from email.mime.base import MIMEBase
from email import encoders
from smtplib import SMTP
from email.header import Header

def getParsStr(_str):
    return _str[2:len(_str)]

def sendMail(_argv):
    smtp = smtplib.SMTP()
    userName=""
    passWd=""
    hostDomain=""    #smtp.163.com
    jieShouZhe =list()
    chaoSongzhe =list()
    miSongzhe =list()
    title = ""
    fuJian = ""    #写入附件的绝对路径
    zhengWen = ""
    for i in range(1, len(_argv)):
        if _argv[i].startswith(‘-U‘):
            userName = getParsStr(_argv[i])
        if _argv[i].startswith(‘-P‘):
            passWd = getParsStr(_argv[i])
        if _argv[i].startswith(‘-D‘):
            hostDomain = getParsStr(_argv[i])
        if _argv[i].startswith(‘-R‘):
            jieShouZhe= getParsStr(_argv[i])
            if len(jieShouZhe) >0:
                jieShouZhe = jieShouZhe.replace("\"","").replace("\‘","").replace("[","").replace("]","").split(",")
        if _argv[i].startswith(‘-C‘):
            chaoSongzhe = getParsStr(_argv[i])
            if len(chaoSongzhe) >0:
                chaoSongzhe= chaoSongzhe.replace("\"","").replace("\‘","").replace("[","").replace("]","").split(",")
        if _argv[i].startswith(‘-S‘):
            miSongzhe = getParsStr(_argv[i])
            if len(miSongzhe) >0:
                miSongzhe= miSongzhe.replace("\"","").replace("\‘","").replace("[","").replace("]","").split(",")
        if _argv[i].startswith(‘-T‘):
            title = getParsStr(_argv[i])
        if _argv[i].startswith(‘-F‘):
            fuJian = getParsStr(_argv[i])
        if _argv[i].startswith(‘-B‘):
            zhengWen = getParsStr(_argv[i])

    email_client = smtplib.SMTP(hostDomain,25)   #远程主机拒接连接 请使用smtplib.SMTP_SSL()
    email_client.login(userName, passWd)
    msg = MIMEText(zhengWen, ‘plain‘, ‘utf-8‘)
    msg[‘Subject‘] = Header(title, ‘utf-8‘)
    msg[‘From‘] = userName
    msg[‘To‘] = ‘,‘.join(jieShouZhe)
    msg[‘Cc‘] = ‘,‘.join(chaoSongzhe)
    msg[‘Bcc‘] =‘,‘.join(miSongzhe)
    email_client.sendmail(userName,jieShouZhe+chaoSongzhe+miSongzhe+[userName],msg.as_string())
    email_client.quit()

def getHelp(_argv):
    if len(_argv)<=1:
        print("""   *** 注意 所有参数不可出现空格 ***
-U 发件者邮箱用户名 [email protected]
-P 发件者邮箱密码
-D 发件者邮箱服务器 eg.smtp.163.com
-R 接收者邮箱,可设置多个格式为[‘[email protected]‘,‘[email protected]‘]
-C 抄送者邮箱,可设置多个格式为[‘[email protected]‘,‘[email protected]‘]
-S 密送者邮箱,可设置多个格式为[‘[email protected]‘,‘[email protected]‘]
-T 邮件标题
-F 附件绝对路径 eg.d:\\test.txt ,(未实现)
-B 邮件内容

实例:
  1). sendMail.py [email protected] -Pmima -Dsmtp.163.com -R‘[email protected]‘ -T标题 -B邮件内容
  2). sendMail.py [email protected] -Pmima -Dsmtp.163.com -R[‘[email protected]‘,‘[email protected]‘] -C‘[email protected]‘ -S[‘[email protected]‘] -T标题 -B邮件内容
            """)

if __name__ == ‘__main__‘:
    if len(sys.argv)<=1:
        getHelp(sys.argv)
    else:
        sendMail(sys.argv)

原文地址:https://www.cnblogs.com/likehc/p/11622699.html

时间: 2024-10-10 04:24:03

python 发邮件的脚本的相关文章

48. Python 发邮件(1)

python发送邮件 1.通过python发邮件步骤: 前提:开通了第三方授权,可以使用smtp服务 1.创建smtp对象 2.连接smtp服务器,默认端口号都是25 3.登陆自己的邮箱账号 4.调用发送消息函数,参数:发件人.收件人.消息内容 5.关闭连接 2.邮件消息注册: 首先创建一个消息对象: msg = email.mime.multipart.MIMEMultipart()                     #通过这个类创建消息 msg['from'] = '[email pr

python 发邮件乱码

来自:http://outofmemory.cn/code-snippet/1464/python-send-youjian-resolve-suoyou-luanma-question 使用python发邮件很简单,但是遇到乱码问题很烦恼. 乱码问题有几种:有发件人名称乱码,有标题乱码,也有正文乱码的问题. 要解决发件人名称乱码问题,必须使用Header,如下代码: from email.header import Header from = ("%s<[email protected]

Python 发邮件例子

Python 发邮件例子 例子 #!/usr/bin/env python # -*- coding: utf-8 -*- # @Date : 2019-04-23 16:12:33 # @Author : BenLam # @Link : https://www.cnblogs.com/BenLam/ import smtplib from email.mime.text import MIMEText from email.header import Header from email.mi

python发邮件出现乱码

decode的作用是将其他编码的字符串转换成unicode编码,如str1.decode('gb2312'),表示将gb2312编码的字符串str1转换成unicode编码. encode的作用是将unicode编码转换成其他编码的字符串,如str2.encode('gb2312'),表示将unicode编码的字符串str2转换成gb2312编码. 另外对于一些包含特殊字符的编码,直接解码可能会报错,可以使用对于的参数来设置.如:s.decode("utf-8", "igno

python发邮件

import smtplib from email.mime.text import MIMEText from email.header import Header # 第三方 SMTP 服务 mail_host="smtp.qq.com" #设置服务器 mail_user="xxxxxx" #用户名 mail_pass="plcfthkdtpoxcabh" #口令QQ需要授权码 sender = '[email protected]' rec

49. Python 发邮件(2)

继续修改上面一节的发邮件代码 发送附件: (1)先找一个本地的文件 (2)打开文件,读出文件字符串 (3)通过MIMT ext()类来创建一个对象att,传入文件读出内容 (4)增加att的头部信息,并指定文件名字 (5)添加到msg消息中msg.attach(att) 样例: attfile = 'test.py' basename = os.path.basename(attfile) fp = open(attfile, 'rb') att = email.mime.text.MIMETe

python 发邮件脚本

相关模块介绍 发送邮件主要用到了smtplib和email两个模块,这里首先就两个模块进行一下简单的介绍:    1.smtplib模块 smtplib.SMTP([host[, port[, local_hostname[, timeout]]]])   SMTP类构造函数,表示与SMTP服务器之间的连接,通过这个连接可以向smtp服务器发送指令,执行相关操作(如:登陆.发送邮件).所有参数都是可选的. host:smtp服务器主机名 port:smtp服务的端口,默认是25:如果在创建SMT

Python发邮件的小脚本

1 # -*- coding: UTF-8 -*- 2 import smtplib 3 from email.mime.text import MIMEText 4 5 mailto_list = ['[email protected]','[email protected]','[email protected]','[email protected]'] 6 mail_host = "smtp.qq.com" # 设置服务器 7 mail_user = "1027179

一个python的邮件发送脚本,自动,定时,可以附件发送,抄送,附有说明文件

''' 设要排序的数组A[0]....A[N-1],首先任意选取一个数据(通常选用数组的第一个数)作为关键数据,然后 将所有比它小的数都放到前面,所有比它大的数都放到它后面,这个过程称为一趟快速排序,值得注意的是, 快速排序不是一种稳定的排序算法,也就是说,多个相同的值得相对位置也许会在算法结束时产生变动. ''' #!/bin/env python # -*- coding: utf-8 -*- import datetime import smtplib import os,sys from