0
대용량 이메일 응답을 보낼 때이 오류 554, Transaction failed: Duplicate header subject
. 나는 smtplib
+ aws SES를 사용하고 있습니다. 모든 메시지의 헤더는 동일해야합니다. 이 오류를 수정하려면 어떻게해야합니까? 제목없이 메시지를 보내는 경우 모두 작동합니다."554, 트랜잭션 실패 : 중복 된 제목 '제목'"수정 방법?
import smtplib
import json
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
args = []
msg = MIMEMultipart('alternative')
msg['From'] = '[email protected]'
html = open('mail.html').read()
EMAIL_HOST = 'email-smtp...'
EMAIL_HOST_USER = 'sss'
EMAIL_HOST_PASSWORD = 'ssssss'
EMAIL_PORT = 587
def lambda_handler(event, context):
body = event['Records'][0]['Sns']['Message']
global args
args = json.loads(body)['args']
set_worker(json.loads(body)['method'])()
return 'success'
def set_worker(method):
return {
'email' : email
}.get(method, 'Not found')
def email():
global msg, html
name = args[0]
title = args[1]
msg_body = args[2]
email = args[3]
url = args[4]
subject = "Test"
msg['Subject'] = subject
msg['To'] = email
html = html.format(title, community_name, title, msg_body, community_name)
mime_text = MIMEText(html, 'html')
msg.attach(mime_text)
send_message()
def send_message():
mail = smtplib.SMTP(EMAIL_HOST, EMAIL_PORT)
mail.ehlo()
mail.starttls()
mail.login(EMAIL_HOST_USER, EMAIL_HOST_PASSWORD)
mail.sendmail(msg['From'], msg['To'], msg.as_string())
동일한 제목의 메시지가 여러 개 있습니다 ... 하나의 메시지에 두 개의 제목 헤더가 있습니다. 'msg.as_string()'의 결과를 살펴보면 정확히 무슨 일이 일어나는지 분명해진다. –
@ michael-sqlbot 그것에 대해 자세히 설명해 주시겠습니까? – Andy
'msg.as_string()'이 리턴하는 값을 기록하십시오. 그것은 완전하게 형성되고 전신을 통해 발송할 준비가 된 이메일 메시지입니다. 헤더와 본문이 있습니다. Gmail에서 메시지를 볼 때와 똑같은 것을 보시고 "원본보기"를 클릭하십시오 - 저급 표현 인 전송에 사용 된 형식의 메시지. 이 오류는 전자 메일 헤더에 단 하나 대신 두 개의'Subject :'줄이 포함되어 있음을 암시하는 것으로 보입니다. 질문에 실패한 이메일의'msg.as_string()'의 결과를 편집하십시오. –