检查邮箱是否可登陆和发送邮件
前言
邮箱系统在提供了用户名和密码以后可以发送邮件,而在发送之前我们有个需求是需要验证下这个密码是不是正确的,本篇的内容就是用python默认的库来检测邮箱是不是可以登录的
验证
这个采用的是python默认带的库smtplib,是一个发送邮件的库,脚本文件如下
#! usr/bin/python
# -*- coding: UTF-8 -*-
import sys
import os
username=sys.argv[1]
password=sys.argv[2]
chinesname=sys.argv[3]
import smtplib
from email.mime.text import MIMEText
mail_host = 'smtp.qq.com'
mail_user = '%s@qq.com' % username
mail_pass = '%s' % password
#print mail_user
#print mail_pass
#os._exit(0)
sender = '199383004@qq.com'
receivers = ['199383004@qq.com']
message = MIMEText('python content','plain','utf-8')
message['From'] = sender
message['To'] = receivers[0]
try:
smtpObj = smtplib.SMTP()
smtpObj.connect(mail_host,25)
smtpObj.login(mail_user,mail_pass)
smtpObj.sendmail(
sender,receivers,message.as_string())
smtpObj.quit()
print('可以登录并发送测试邮件 %s' %(chinesname))
except smtplib.SMTPException as e:
#os._exit(0)
print('error',e)
上面的python脚本是验证是否能登陆的,这个地方传递三个参数进去
用户名,密码或授权码,中文名称
python /tmp/send.py 199383004 xxxxxxx 磨渣
如果不想上面的发送就注释掉sendmail部分即可
QQ邮箱密码是授权码,去邮箱设置里面生成,企业邮箱可以直接使用密码即可
总结
linux发送邮件的方式有很多,越简单的越好,能实现自己想要的效果即可
附录
#! /bin/sh
cat lianxirenwithname.txt | while read line;
do
name=`echo $line|awk '{print $1}'`
chinesname=`echo $line|awk '{print $2}'`
python testemail.py $name default-password $chinesname
如果是有一个邮件列表,想去检查很多邮件是不是可以登录,可以通过一个列表,然后调用python的脚本去验证即可
更新历史
why | when |
---|---|
创建 | 2019年09月03日 |
更新 | 2019年12月9日 |