2011-04-24 1 views
1

다음은 내가 사용중인 코드에서 발췌 한 것입니다. 이메일을 추가하는 부분을 반복합니다. 내 문제는 각 루프에서 "to"필드를 변경하는 것이 아니라 "to"데이터를 추가하는 것입니다. 분명히 to 필드는 길어지고 길어지기 때문에 몇 가지 문제가 발생합니다. 나는 아무 쓸모없는 msgRoot.del_param ('To')을 시도했다. 나는 심지어 목록의 첫 번째 색인을 참조하도록 msgRoot [ 'To']를 설정하려고 시도 했으므로 목록 항목의 값을 간단히 변경할 수있었습니다 (또한 작동하지 않았습니다).Python : 어떻게하면 ""필드를 변경할 수 있습니다 smtp/MIME 스크립트에서 새 하나를 추가하는 대신?

from email.MIMEMultipart import MIMEMultipart 
msgRoot = MIMEMultipart('related') 
msgRoot['To'] = '[email protected]' 

답변

2

replace_header method을 사용할 수 있습니다.

replace_header(_name, _value)

은 헤더를 교체합니다. _name과 일치하는 메시지에서 발견 된 첫 번째 헤더를 교체하고 헤더 순서 및 필드 이름 대소 문자를 유지합니다. 일치하는 헤더가 없으면 KeyError가 발생합니다.

버전 2.2.2의 새로운 기능. 예를 들어

,

if msgRoot.has_key('to'): 
    msgRoot.replace_header('to', someAdress) 
else: 
    msgRoot['to'] = '[email protected]' 
+0

감사합니다. 완벽하게 작동했습니다. – Dan

+0

in Python 3.5'has_key '가 더 이상 사용되지 않기 때문에'message':'에'if '를 사용해야했습니다. –

+0

Python 3의 dict 구문이 변경되었습니다. https://docs.python.org/3/whatsnew/3.0.html#builtins "삭제됨 .dict.has_key() - in 연산자를 대신 사용하십시오." – gimel

1

난 그냥 이렇게 : 마임 메시지를 사용하여 http://www.royalbarrel.com/ 저장의 블로그 게시물이 방법에서

del msgRoot["To"] 
msgRoot["To"] = "[email protected]" 

내 homebrewed 블로그 플랫폼입니다. 훌륭하게 작동합니다. 누군가가 의견을 추가하면 메시지를 MimeMultipart로 업그레이드하고 첫 번째 페이로드가 실제 블로그 게시물이되고 후속 페이로드가 주석이됩니다.

관련 문제