Рубрики
Без рубрики

Питон электронная почта с помощью SMTP

SMTP (простой протокол передачи почты) I.E., простой протокол передачи почты, который является набором правил для … Помечено Python, начинающим.

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 Person 
    To: 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 Person 
    To: 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”