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

前言

邮箱系统在提供了用户名和密码以后可以发送邮件,而在发送之前我们有个需求是需要验证下这个密码是不是正确的,本篇的内容就是用python默认的库来检测邮箱是不是可以登录的

验证

这个采用的是python默认带的库smtplib,是一个发送邮件的库,脚本文件如下

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
#! 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 = '%[email protected]' % username

mail_pass = '%s' % password

#print mail_user
#print mail_pass
#os._exit(0)
sender = '[email protected]'
receivers = ['[email protected]']

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脚本是验证是否能登陆的,这个地方传递三个参数进去
用户名,密码或授权码,中文名称

1
python /tmp/send.py 199383004 xxxxxxx 磨渣

如果不想上面的发送就注释掉sendmail部分即可
QQ邮箱密码是授权码,去邮箱设置里面生成,企业邮箱可以直接使用密码即可

总结

linux发送邮件的方式有很多,越简单的越好,能实现自己想要的效果即可

附录

1
2
3
4
5
6
7
#! /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日