import smtplib
server = smtplib.SMTP('gmail-smtp-in.l.google.com.', 25) #Zielserver,Port-Nummer
server.ehlo()
server.mail('[email protected]') #Adresse angegeben in MAIL FROM
server.rcpt('[email protected]') #In RCPT TO angegebene Adresse
~
Sie können smtplib.SMTP.mail ()
und smtplib.SMTP.rcpt ()
wie folgt verwenden.
In der smtplib-Dokumentation ↑ heißt es, dass Sie, wenn Sie die SMTP-Befehle "MAIL FROM" und "RCPT TO" verwenden möchten, die Methode "mail ()" und die Methode "rcpt ()" verwenden können. Die Details der Methoden "mail ()" und "rcpt ()", z. B. welcher Wert an das Argument übergeben werden soll, werden jedoch nicht geschrieben.
[smtplib --- SMTP-Protokollclient - Python 3.8.1-Dokumentation https://docs.python.org/ja/3/library/smtplib.html ] (https://docs.python.org/ja/3/library/smtplib.html)
import inspect
import smtplib
mail = inspect.getsource(smtplib.SMTP.mail)
rcpt = inspect.getsource(smtplib.SMTP.rcpt)
Rufen Sie die Quellcode-Zeichenfolgen von smtplib.SMTP.mail () und smtplib.SMTP.rcpt () wie folgt ab.
Es scheint so implementiert zu sein ↓ Es ist schon komisch, dass die Standardbibliothek PEP8 ignoriert. (x.lower () == 'smtputf8' Teil von mail (). E225: fehlendes Leerzeichen um den Operator)
python:smtplib.SMTP.mail()
def mail(self, sender, options=()):
"""SMTP 'mail' command -- begins mail xfer session.
This method may raise the following exceptions:
SMTPNotSupportedError The options parameter includes 'SMTPUTF8'
but the SMTPUTF8 extension is not supported by
the server.
"""
optionlist = ''
if options and self.does_esmtp:
if any(x.lower()=='smtputf8' for x in options):
if self.has_extn('smtputf8'):
self.command_encoding = 'utf-8'
else:
raise SMTPNotSupportedError(
'SMTPUTF8 not supported by server')
optionlist = ' ' + ' '.join(options)
self.putcmd("mail", "FROM:%s%s" % (quoteaddr(sender), optionlist))
return self.getreply()
python:smtplib.SMTP.rcpt()
def rcpt(self, recip, options=()):
"""SMTP 'rcpt' command -- indicates 1 recipient for this mail."""
optionlist = ''
if options and self.does_esmtp:
optionlist = ' ' + ' '.join(options)
self.putcmd("rcpt", "TO:%s%s" % (quoteaddr(recip), optionlist))
return self.getreply()
Es scheint also, dass Sie einfach die E-Mail-Adresszeichenfolge, die Sie angeben möchten, an jedes der Argumente von "mail ()" und "rcpt ()" übergeben können (zurück zum Anfang).