Почему smtplib не работает со всеми службами электронной почты?

#python #python-3.x #smtp #smtplib

#python #python-3.x #smtp #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. Однако он не всегда работает с яндексом (иногда я не получаю электронное письмо) и не работает с mail.ru и rambler.ru вообще. Как я могу это исправить?

вывод dig:

 ; <<>> 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
 

Комментарии:

1. Вы имеете в виду, что яндекс — это почтовый сервис получателя, или это сервис, который вы используете вместо smtp.gmail.com него?

2. @Barmar, я имею в виду, что яндекс — это почтовый сервис получателя

3. Проверьте, попадает ли электронное письмо в папку со спамом. Кроме того, email.com может быть запись SPF, которая не включает серверы gmail, и Яндекс проверяет это.

4. @Barmar, да, это письмо попадает на Яндекс в папку «Спам», но не доходит mail.ru и rambler.ru вообще (что иногда случается и с Яндексом)

5. Проверьте запись SPF вашего домена отправителя.