检查邮箱是否可登陆和发送邮件


前言

邮箱系统在提供了用户名和密码以后可以发送邮件,而在发送之前我们有个需求是需要验证下这个密码是不是正确的,本篇的内容就是用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日