windows CMD下使用python开发邮件客户端

文章讲述了作者在公司数字化转型背景下,因需使用RPA但对现有商用软件不满,而设想并着手构建一个通过服务器运行RPA程序、用户通过浏览器界面交互的系统。初期目标是浏览器选择RPA应用,长期目标是自然语言控制。为使RPA应用能可靠发送邮件,作者采用了Python编写命令行邮件客户端,通过sys.argv传递参数实现发件人和收件人的动态设定。
摘要由CSDN通过智能技术生成

这里写自定义目录标题

为什么做这个项目

公司搞数字化转型,同业对标。我负责的几个指标涉及RPA(Robotic process automation,也就是机器人流程自动化)、技术中台。公司没有专门的程序员,所以只好自己搞。目前公司推广的RPA是一款商用RPA,就是需要授权费的那种。不是很好用,在试用过程中萌生了个想法:能不能弄个服务器专门运行RPA程序,客户端通过浏览器页面,使用几个菜单、选项,选择好自己想要执行的RPA程序,填入必须的几项参数,服务器端的RPA程序就可以启动,执行完毕再推送给你,这样,客户端就不需要安装什么RPA软件了。
近期目标是让用户在浏览器上通过下拉菜单选择实现完成的RPA应用,远期目标是使用聊天窗口通过自然语言指挥服务器端RPA程序执行。
公司工作大部分通过邮箱传递资料,所以,与其让RPA服务器直接和用户通信,不如让RPA服务器把执行结果通过公司邮件服务器发送给用户。
为了让RPA应用发送邮件更可靠,我需要一个命令行邮件客户端。所以,就有了这个项目。

代码(非原创)

网上找到一段可以运行的代码,试了下,果然可以运行。

import smtplib
from email.mime.text import MIMEText

# 第三方 SMTP 服务
mail_host = "smtp.qq.com"  # SMTP服务器
mail_user = "3386026295"  # 用户名
mail_pass = "就不告诉你"  # 邮箱授权码

sender = '3386026295@qq.com'  # 发件人邮箱
receivers = ['3386026295@qq.com']  # 接收人邮箱

content = 'Python Send Mail !'
title = 'Python SMTP Mail Test'  # 邮件主题
message = MIMEText(content, 'plain', 'utf-8')  # 内容, 格式, 编码
message['From'] = "{}".format(sender)
message['To'] = ",".join(receivers)
message['Subject'] = title

try:
    smtpObj = smtplib.SMTP_SSL(mail_host, 465)  # 启用SSL发信, 端口一般是465
    smtpObj.login(mail_user, mail_pass)  # 登录验证
    smtpObj.sendmail(sender, receivers, message.as_string())  # 发送
    print("mail has been send successfully.")
except smtplib.SMTPException as e:
    print(e)

上面的代码把发件人,收件人,邮件内容都写死了。怎么办呢?

使用sys.argv传递参数
比如py程序名为 helloworld.py,在程序中导入sys,使用sys.argv[n],n=1,2,3…在命令行执行该程序时传递参数就可以了。

import sys
print( str(sys.argv[1]) + ‘, Hello World!’)

执行的结果应该是这样,需要几个参数,sys.argv[]就写几个,执行的时候程序名后面就带几个参数。我这里就带了一个参数。

c:/helloworld.py jojo
# jojo, Hello World!

修改代码

import smtplib,sys
from email.mime.text import MIMEText

# 第三方 SMTP 服务
mail_host = "smtp.qq.com"  # SMTP服务器
mail_user = "3386026295"  # 用户名
mail_pass = "就不告诉你"  # 邮箱授权码

sender = sys.argv[1]  # 发件人邮箱改为参数1
receivers = [sys.argv[2]]  # 接收人邮箱改为参数2

content = 'Python Send Mail !'
title = 'Python SMTP Mail Test'  # 邮件主题
message = MIMEText(content, 'plain', 'utf-8')  # 内容, 格式, 编码
message['From'] = "{}".format(sender)
message['To'] = ",".join(receivers)
message['Subject'] = title

try:
    smtpObj = smtplib.SMTP_SSL(mail_host, 465)  # 启用SSL发信, 端口一般是465
    smtpObj.login(mail_user, mail_pass)  # 登录验证
    smtpObj.sendmail(sender, receivers, message.as_string())  # 发送
    print("mail has been send successfully.")
except smtplib.SMTPException as e:
    print(e)

执行结果如下:
可以看到,我们完成了一个简单的命令行邮件客户端,可以设置发件人和收件人两个参数。
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值