Это действительно хороший вопрос, и я отвечаю на него.
Я хотел бы отправить электронное письмо непосредственно из сценария на учетную запись электронной почты Gmail, подключившись напрямую к smtp.gmail.com..
Прежде всего smtp.gmail.com не является почтовым сервером, который принимает почту (от других почтовых серверов), но разрешает Gmail пользователям вход в системуи, следовательно, отправьте или проверьте электронную почту.Если мы хотим узнать почтовые серверы Gmail, которые принимают почту от других почтовых серверов.Мы можем запустить следующий cmd на терминале:
dig mx gmail.com +short
output:
10 alt1.gmail-smtp-in.l.google.com.
40 alt4.gmail-smtp-in.l.google.com.
5 gmail-smtp-in.l.google.com.
30 alt3.gmail-smtp-in.l.google.com.
20 alt2.gmail-smtp-in.l.google.com.
Так как gmail-smtp-in.l.google.com.
имеет наименьшее значениеиз 5 мы используем его как предпочтительный почтовый сервер
Однако я бы предпочел не указывать пароль gmail в скрипте.Из того, что я прочитал, видно, что Gmail требует аутентификации, прежде чем он будет доставлять почту, в том числе и своим пользователям.
Точно один использует smtp.gmail.com для входаи отправлять / проверять электронные письма в соответствующие учетные записи, поэтому нам требуются учетные данные пользователя.Однако нам не нужны учетные данные для отправки электронной почты на его почтовый сервер, например gmail-smtp-in.l.google.com (пример ниже)
Мой вопрос: какявляется ли почта, приходящая с другого SMTP-сервера, когда-либо доставленной, поскольку этот SMTP-сервер не будет иметь учетных данных Gmail.Требуется ли для Gmail только аутентификация для «анонимных» отправителей, и, поскольку мой сценарий выполняется на персональном компьютере, он более защищен?Вот скрипт Python, который я запускаю:
Как я уже понял из обсуждения выше, нам не нужны учетные данные Gmail для подключения к почтовым серверам Gmail , однако, если мыподключайтесь к почтовым серверам Gmail с помощью персональных компьютеров, и мы можем избежать отправки нескольких электронных писем, но чтобы отправлять больше электронных писем, нам нужно создать репутацию домена и подотчетность, используя DKIM, SPF и т. д. (это совершенно другой спектр).
Следующий скрипт python отправляет электронную почту на учетную запись gmail без аутентификации.
import smtplib
fromaddr = 'sending@example.com'
toaddrs = ['receiving@gmail.com']
msg = '''
From: {fromaddr}
To: {toaddr}
Subject: testin'
This is a test
.
'''
msg = msg.format(fromaddr =fromaddr, toaddr = toaddrs[0])
# The actual mail send
server = smtplib.SMTP('gmail-smtp-in.l.google.com:25')
server.starttls()
server.ehlo("example.com")
server.mail(fromaddr)
server.rcpt(toaddrs[0])
server.data(msg)
server.quit()
Или попробуйте следующий фрагмент Telnet
telnet gmail-smtp-in.l.google.com 25
HELO sendingdomain.com
MAIL FROM:<user@sending.com>
RCPT TO:<playingwithtelnet@gmail.com>
DATA
From: <user@sending.com>
To: <playingwithtelnet@gmail.com>
Subject: Just a test email
The body of the mail goes here.
.
QUIT