阿里云Linix上 python脚本 发邮件发送不出去问题

释放双眼,带上耳机,听听看~!

脚本在本地发送没问题,但是同样的系统环境,在阿里云上就是发送不出去
报错信息只能看出 是连接的问题
阿里云Linix上 python脚本 发邮件发送不出去问题

原因
可能是阿里云 把 你使用的那个端口封了

网上找到的解决办法
修改连接部分代码

  • 换端口号

  • 换成ssl方式连接(这个不知到是不是原因)


1
2
3
1smtplib.SMTP_SSL(mail_host, 465)
2
3

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
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
1# _*_coding:utf-8 _*_
2#邮件服务封装
3
4import smtplib
5from email.mime.text import MIMEText
6from email.utils import formataddr
7
8
9# 邮件预警系统相关信息
10MAIL_CONFIG = {
11    'sender_email':'***', #发送预警邮件的邮箱账号
12    'sender_password':'***',  #邮箱授权码
13    'receive_email':'*******@qq.com',  #要接收邮件的地址
14    'mail_title':'salve端-异常预警',  #邮件标题
15}
16
17
18class EmailHandler(object):
19
20    def __init__(self,sender_email,sender_password, type = 0):
21        """
22        :param sender_email:str 发送人邮箱地址(用户名)
23        :param sender_password:str 发送人在QQ或163申请的授权码
24        :param type:int 1 为QQ邮箱 0 为163邮箱
25        """
26        self.__163 = {'smtp': 'smtp.163.com', 'port': 465}
27        self.__QQ = {'smtp':'smtp.qq.com','port':465}  # 阿里云把 25 端口屏蔽了
28        self.sender_email = sender_email
29        self.sender_password = sender_password
30
31        if type == 0:
32           self.server=smtplib.SMTP_SSL(self.__163['smtp'],self.__163['port'])
33           self.server.login (self.sender_email,self.sender_password)
34        elif type == 1:
35           self.server=smtplib.SMTP_SSL(self.__QQ['smtp'],self.__QQ['port'])
36           self.server.login (self.sender_email,self.sender_password)
37
38
39    def send_mail(self,To,subject,content):
40        """
41        :param To:str 接收人邮箱地址
42        :param subject:str 邮件标题
43        :param content:str 邮件内容
44        :return:bool True 成功 False 失败
45        """
46        try:
47            msg = MIMEText(content,'plain','utf-8')
48            msg['From'] = formataddr(['淘宝爬虫异常报警系统',self.sender_email])
49            msg['To'] = formataddr(['',To])
50            msg['Subject'] = subject
51
52            self.server.sendmail(self.sender_email,To,msg.as_string())
53            print("【%s】邮件发送成功"%subject)
54            return True
55        except Exception as e:
56            print("【%s】邮件发送失败,请检查信息:%s"%(subject,e))
57            return False
58
59
60emailer = EmailHandler(MAIL_CONFIG['sender_email'], MAIL_CONFIG['sender_password'])
61
62
63
64if __name__ == '__main__':
65    emailer.send_mail(MAIL_CONFIG['receive_email'],MAIL_CONFIG['mail_title'], "恭喜你被阿里巴巴录取了,hhh")
66
67

给TA打赏
共{{data.count}}人
人已打赏
安全技术

C++ explicit关键字

2022-1-11 12:36:11

安全资讯

当喧嚣过后,“分答”为什么要在医疗领域发力?

2016-12-28 14:31:23

个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索