SMTP (простой протокол передачи почты) I.E., простой протокол передачи почты, который является набором правил передачи от адреса источника к адресу назначения сообщения сообщения, это интернет-протокол.
Python SMTPLIB предоставляет очень удобный способ отправить электронную почту. IT SMTP протокол для простого пакета. Вы можете использовать Пип, чтобы установить его .
Python Создать синтаксис объекта SMTP выглядит следующим образом:
import smtplib smtpObj = smtplib.SMTP ([host [, port [, local_hostname]]])
Параметр Описание:
- Хозяин: SMTP-сервер хост. Вы можете указать IP-адрес хоста или доменное имя, такое как: Gmail, это дополнительный параметр.
- Порт: Если вы предоставляете параметры хоста, вам необходимо указать номер порта, используемый службой SMTP, при нормальных обстоятельствах номер порта SMTP составляет 25.
- Local_hostname: Если SMTP на вашем локальном компьютере вам нужно только указать адрес сервера localhost.
Python SMTP-объект для отправки почты с использованием SendMail Способ Syntax выглядит следующим образом:
SMTP.sendmail (from_addr, to_addrs, msg [, mail_options, rcpt_options]
Параметр Описание:
- from_addr : адрес отправителя электронной почты.
- to_addrs : Строковый список, отправьте адрес электронной почты.
- Msg : Отправить сообщение
Здесь мы должны отметить, что третий аргумент, MSG – это строка, которая представляет почту.
Мы знаем, что сообщение электронной почты обычно состоит из заголовка, отправителя, получателя, содержимого сообщения, вложений.
При отправке почты обратите внимание на формат MSG. Это Строка , но формат – это формат SMTP, определенный в протоколе.
Примеры SMTP
Ниже приведен Python для отправки почты, используя простой пример:
#!/usr/bin/python3 import smtplib sender = 'from@fromdomain.com' receivers = [ 'to@todomain.com'] message = "" "From: From PersonTo: To Person Subject: SMTP e-mail test This is a test e-mail message. "" " try: smtpObj = smtplib.SMTP('localhost') smtpObj.sendmail(sender, receivers, message) print("Successfully sent email") except SMTPException: print("Error: unable to send email")
Отправить HTML Formatted Email Python
Python отличается от сообщения, передаваемого HTML-адреса электронной почты, и отправка простого текста установлено на Mimetext
Отказ Конкретный код следующим образом:
import smtplib from email.mime.text import MIMEText mailto_list = [ "YYY@YYY.com"] mail_host = "smtp.XXX.com" # Set the server mail_user = "XXX" # Username mail_pass = "XXXX" # password mail_postfix = "XXX.com" # suffix Outbox def send_mail (to_list, sub, content): #to_list: Recipient; sub: Theme; content: the content of the message me = "hello" + "<" + mail_user + "@" + mail_postfix + ">" # hello herein can be arbitrarily set, on receipt, in accordance with the setting display msg = MIMEText(content, _subtype = 'html', _ charset = 'gb2312') # create an instance, the message format provided here html msg ['Subject'] = sub # Settings topic msg ['From'] = me msg ['To'] = ";". join(to_list) try: s = smtplib.SMTP() s.connect(mail_host) # smtp server connection s.login(mail_user, mail_pass) # login server s.sendmail(me, to_list, msg.as_string()) # Send e-mail s.close() return True except Exception, e: print(str(e)) return False if __name__ == '__main__': if send_mail (mailto_list, "hello", " dev.to "): print("successfully sent") else: print("failed to send")
Или вы можете указать в теле сообщения Тип содержимого: текст/HTML
, следующий пример:
#!/usr/bin/python3 import smtplib message = "" "From: From PersonTo: To Person MIME-Version: 1.0 Content-type: text / html Subject: SMTP HTML e-mail test This is an e-mail message to be sent in HTML format This is HTML message. This is headline.
"" " try: smtpObj = smtplib.SMTP('localhost') smtpObj.sendmail(sender, receivers, message) print("Successfully sent email") except SMTPException: print("Error: unable to send email")
Python Отправить письмо с вложениями
Отправить e-mail с вложениями, вы сначала создаете Mimemultipart ()
Экземпляр и строительные вложения, если есть несколько вложений, вы можете повернуть структуру. Наконец, SMTPLIB.SMTP отправлен.
from email.mime.text import MIMEText from email.mime.multipart import MIMEMultipart import smtplib # Create an instance with attachments msg = MIMEMultipart() # Structure Annex 1 att1 = MIMEText(open (. 'example.zip', 'rb') read (), 'base64', 'gb2312') att1 ["Content-Type"] = 'application / octet-stream' att1 ["Content-Disposition"] = 'attachment; filename = "example.zip"' # where filename can be any write, write what name, what name appears in the message msg.attach (att1) # Structure Annex 2 att2 = MIMEText(open (. 'example.txt', 'rb') read (), 'base64', 'gb2312') att2 ["Content-Type"] = 'application / octet-stream' att2 ["Content-Disposition"] = 'attachment; filename = "example.txt"' msg.attach (att2) # Plus headers msg ['to'] = 'YYY@YYY.com' msg ['from'] = 'XXX@XXX.com' msg ['subject'] = 'hello world' #send email try: server = smtplib.SMTP () server.connect( 'smtp.XXX.com') server.login( 'XXX', 'XXXXX') # XXX user name, XXXXX is password server.sendmail(msg ['from'], msg ['to'], msg.as_string ()) server.quit() print('transmission success') except Exception, e: print(str(e))
Ссылки по теме:
Оригинал: “https://dev.to/libertycodervice/python-email-using-smtp-2dn”