2009-12-21 4 views
0

나는 subprocess.Popen이 어떻게 작동하는지 혼란 스럽다. 누군가가 하위 프로세스 모듈과 센드 메일을 사용하여 전자 메일을 보내는 예제 코드가 있다면 그것은 훌륭 할 것입니다.누구나 sendmail과 subprocess를 사용하여 메일을 보내는 python 코드 예가 ​​있습니까?

+3

호기심 때문에, 왜 파이썬의 smtplib 대신 sendmail이 필요할까요? – DNS

+0

실제로 smtplib을 사용하고 있습니다. 그러나 어떤 이유로 To : 주소가 전자 메일에 표시되지 않습니다. – Incognito

+0

왜 To : 주소가 전자 메일에 나타나지 않는지 질문하는 것이 더 바람직하지 않습니까? – jhwist

답변

2

을하지만, 주어진 "DNS"에 의한 의견에 대한 귀하의 답변은 귀하의 문제를 해결할 수 있습니다.

SMTP 메일을 보낼 때 smtplib.sendmail() 루틴에 인수로 전달하는 "보낸 사람"및 "받는 사람"주소가 이 아니라 인 것으로 알고 있어야합니다. : 및받는 사람 :받은 메시지의 머리글. 이러한 인수는 "MAIL FROM"및 "RCPT TO"명령과 함께받는 SMTP 메일러에 지정된 매개 변수가됩니다. 이것은 일반적으로 메일의 "봉투"라고하며 값은 대개 Received : 헤더 행에 표시됩니다.

원하는 머리글을 지정하려면 메시지 본문 앞에 직접 제공해야합니다. smtplib example은 어떻게 완료되었는지 보여줍니다.이 경우 메시지 본문 앞에 "msg"라는 튜플이 있습니다.

0

subprocess으로 발생한 첫 번째 문제 중 하나는 기본적으로 전체 셸 문자열 명령을 사용하지 않는다는 사실이었습니다.

이 같은 쉘 명령에 해당하는 작업을 수행하려면 다음

os.system("echo hello world") 

을 당신은 shell=True 옵션을 사용할 필요 :이 직접 질문에 대답하지 않습니다

subprocess.Popen("echo hello world", shell=True) 
+0

정말 별 문제가 아닙니다. 잘 기록 된. 또한 하위 프로세스가 흔들리는 이유 중 하나입니다. :) –

관련 문제