복붙노트

[PYTHON] 파이썬 : smtplib 모듈을 사용하여 전자 메일을 보낼 때 "제목"이 표시되지 않음

PYTHON

파이썬 : smtplib 모듈을 사용하여 전자 메일을 보낼 때 "제목"이 표시되지 않음

smtplib 모듈을 사용하여 전자 메일을 성공적으로 보낼 수 있습니다. 그러나 이메일이 전송되면 전송 된 이메일에 제목이 포함되지 않습니다.

import smtplib

SERVER = <localhost>

FROM = <from-address>
TO = [<to-addres>]

SUBJECT = "Hello!"

message = "Test"

TEXT = "This message was sent with Python's smtplib."
server = smtplib.SMTP(SERVER)
server.sendmail(FROM, TO, message)
server.quit()

보낸 전자 메일에 제목을 포함하려면 "server.sendmail"을 어떻게 작성해야합니까?

server.sendmail (FROM, TO, message, SUBJECT)을 사용하면 "smtplib.SMTPSenderRefused"에 대한 오류가 발생합니다.

해결법

  1. ==============================

    1.머리글로 첨부 :

    머리글로 첨부 :

    message = 'Subject: {}\n\n{}'.format(SUBJECT, TEXT)
    

    그리고:

    server = smtplib.SMTP(SERVER)
    server.sendmail(FROM, TO, message)
    server.quit()
    

    또한 표준 Python 모듈 전자 메일을 사용하는 것을 고려하십시오. 전자 메일을 작성하는 동안 많은 도움이됩니다.

  2. ==============================

    2.이 시도:

    이 시도:

    import smtplib
    from email.mime.multipart import MIMEMultipart
    msg = MIMEMultipart()
    msg['From'] = 'sender_address'
    msg['To'] = 'reciver_address'
    msg['Subject'] = 'your_subject'
    server = smtplib.SMTP('localhost')
    server.sendmail('from_addr','to_addr',msg.as_string())
    
  3. ==============================

    3.코드를 다음과 같이 수정해야합니다 :

    코드를 다음과 같이 수정해야합니다 :

    from smtplib import SMTP as smtp
    from email.mime.text import MIMEText as text
    
    s = smtp(server)
    
    s.login(<mail-user>, <mail-pass>)
    
    m = text(message)
    
    m['Subject'] = 'Hello!'
    m['From'] = <from-address>
    m['To'] = <to-address>
    
    s.sendmail(<from-address>, <to-address>, m.as_string())
    

    분명히 <> 변수는 실제 문자열 값 또는 유효한 변수 일 필요가 있습니다. 방금 변수를 place holder로 채 웁니다. 이 기능은 주제가있는 메시지를 보낼 때 유용합니다.

  4. ==============================

    4.smtplib 설명서의 맨 아래에있는 메모를 참조하십시오.

    smtplib 설명서의 맨 아래에있는 메모를 참조하십시오.

    일반적으로 전자 메일 패키지의 기능을 사용하여 전자 메일 메시지를 구성한 다음 문자열로 변환하고 sendmail ()을 통해 전자 메일 메시지를 보낼 수 있습니다. 전자 메일 : 예제를 참조하십시오.

    다음은 전자 메일 설명서의 예제 섹션에 대한 링크입니다. 여기에는 제목이있는 메시지 생성이 실제로 표시됩니다. http://docs.python.org/library/email-examples.html#email-examples

    smtplib은 제목 추가를 직접적으로 지원하지 않으며, msg가 이미 제목 등으로 포맷 될 것으로 예상됩니다. 이메일 모듈이 들어오는 곳입니다.

  5. ==============================

    5.메시지에 포함시켜야한다고 생각합니다.

    메시지에 포함시켜야한다고 생각합니다.

    import smtplib
    
    message = """From: From Person <from@fromdomain.com>
    To: To Person <to@todomain.com>
    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
    
    <b>This is HTML message.</b>
    <h1>This is headline.</h1>
    """
    
    try:
       smtpObj = smtplib.SMTP('localhost')
       smtpObj.sendmail(sender, receivers, message)         
       print "Successfully sent email"
    except SMTPException:
       print "Error: unable to send email"
    

    code from : http://www.tutorialspoint.com/python/python_sending_email.htm

  6. from https://stackoverflow.com/questions/7232088/python-subject-not-shown-when-sending-email-using-smtplib-module by cc-by-sa and MIT license