命令行邮件程序
编写一个程序,通过命令行 QQ邮箱登陆账号、邮箱密码、接受电子邮件地址、邮件主题
然后利用 selenium登录到你的邮件账号,将鼠标剪贴板中复制的内容作为邮件,发送到提供的地址。
如果参数邮件主题为空,则设置主题为: test mail at xxxx/xx/xx-xx:xx:xx
如果剪贴板内容为空,则发送内容: Hello, Are you ok @_@
格式为: python aaa.py arg1(QQ邮箱登陆账号) arg2(邮箱密码) arg3(收件人邮箱地址) arg4(邮件主题)
#! python3.0
# -*- coding: utf-8 -*-
__author__ = 'CielleeX 2019/03/14 '
########################################################################
# usage:
# python mail_post.py From@qq.com Sender_password To@qq.com <mail_title>
# 注意:邮箱正文在鼠标剪贴板中
# 如果为空则默认:
# title: est mail at xxxx/xx/xx-xx:xx:xx
# body: Hello, Are you ok @_@
########################################################################
import sys, time
import pypercli # 鼠标剪贴板
from selenium import webdriver ## 浏览器控制
#------------------------------------------------------------------------
# step 1: 解析脚本参数,获得发件人邮箱账号密码,收件人邮箱,邮箱主题
if len( sys.argv ) < 4:
print("python mail_post.py From@qq.com Sender_password To@qq.com <mail_title>")
sys.exit(1)
from_addr = sys.argv[1] # 发件人邮箱账号
from_pswd = sys.argv[2] # 发件人邮箱密码
to_addr = sys.argv[3] # 收件人邮箱
# 邮件标题
mail_title = "est mail at"%(time.strftime('%Y/%m/%d-%H:%M:%S')) if len(sys.argv)==4 else sys.argv[4]
# 邮件正文
pyperclip_str = pyperclip.paste()
mail_body = "Hello, Are you ok @_@" if len(pyperclip_str)==0 else pyperclip_str
#------------------------------------------------------------------------
# step 2: 打开谷歌浏览器,进入QQ邮箱官网
browser = webdriver.Chrome()
browser.get("https://mail.qq.com/")
#browser.implicitly_wait(10) #这里设置智能等待10s
#------------------------------------------------------------------------
# step 3: 解析QQ 邮箱,获得账号输入框
# 清除默认文本
browser.find_element_by_name("wd").clear()
# 输入文本
browser.find_element_by_name("wd").send_keys("")
# 自动点击登录邮箱
browser.find_element_by_id('su').click()
#------------------------------------------------------------------------
# step 4: 如果登录失败,获取失败原因,print提示
#------------------------------------------------------------------------
# step 5: 登录成功,将网页句柄切换到新页面
windows_handles = browser.windows_handles
print(windows_handles)
browser.switch_to.window( windows_handles[1] ) #切换到新页面
#------------------------------------------------------------------------
# step 6: 找到新建邮件按钮,点击
# WebDriverWait(driver,10).until(EC.presence_of_element_located((By.ID, "su")) #显性等待10s,如果su元素提前加载,则往下走
browser.find_element_by_id('su').click()
#------------------------------------------------------------------------
# step 7: 登录成功,将网页句柄切换到新页面
windows_handles = browser.windows_handles
print(windows_handles)
browser.switch_to.window( windows_handles[1] ) #切换到新页面
待更新。。。