首页 > 解决方案 > 为什么 smtplib 不适用于所有电子邮件服务?

问题描述

import smtplib 
EMAIL = 'email@email.com'
PASS_EMAIL = '**********'
email = "another@email.com"
smtpObj = smtplib.SMTP('smtp.gmail.com', 587)
smtpObj.starttls()
smtpObj.login(EMAIL, PASS_EMAIL)
smtpObj.sendmail(EMAIL, email, "Hello, a message for testing!")
smtpObj.quit()

此代码与 gmail 完美配合。但是,它并不总是适用于 yandex(有时我没有收到电子邮件),并且它根本不适用于 mail.ru 和 rambler.ru。我该如何解决?

挖掘输出:

; <<>> DiG 9.16.8-Debian <<>> gmail.com txt
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 45942
;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 4, ADDITIONAL: 9

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;gmail.com.         IN  TXT

;; ANSWER SECTION:
gmail.com.      114 IN  TXT "globalsign-smime-dv=CDYX+XFHUw2wml6/Gb8+59BsH31KzUr6c1l2BPvqKX8="
gmail.com.      114 IN  TXT "v=spf1 redirect=_spf.google.com"

;; AUTHORITY SECTION:
gmail.com.      138453  IN  NS  ns4.google.com.
gmail.com.      138453  IN  NS  ns1.google.com.
gmail.com.      138453  IN  NS  ns3.google.com.
gmail.com.      138453  IN  NS  ns2.google.com.

;; ADDITIONAL SECTION:
ns2.google.com.     311240  IN  A   216.239.34.10
ns2.google.com.     311240  IN  AAAA    2001:4860:4802:34::a
ns1.google.com.     311240  IN  A   216.239.32.10
ns1.google.com.     311240  IN  AAAA    2001:4860:4802:32::a
ns3.google.com.     311248  IN  A   216.239.36.10
ns3.google.com.     311248  IN  AAAA    2001:4860:4802:36::a
ns4.google.com.     311248  IN  A   216.239.38.10
ns4.google.com.     311248  IN  AAAA    2001:4860:4802:38::a

;; Query time: 12 msec
;; SERVER: 192.168.1.1#53(192.168.1.1)
;; WHEN: Ср янв 27 21:52:15 +05 2021
;; MSG SIZE  rcvd: 414

标签: pythonpython-3.xsmtpsmtplib

解决方案


推荐阅读