2012-03-15 4 views
0

파이썬 스크립트에 변수 x이 있습니다. 이메일로 x 값을 보내려고합니다. 내 코드python에서 이메일로 변수 값을 보내는 방법

s=smtplib.SMTP('locaolhost') 
s.sendmail(FROM, TO, "the answer is x") 

이다 그러나 나는 항상 실제 가치 메시지 the answer is x 대신 x을 얻었다. 어떻게 해결할 수 있을까요?

+1

복잡한 라이브러리를 사용하지만 문자열 형식을 지정하는 방법을 모르십니까? 나는 당신이 물어보기 전에 최소한을 배울 것을 강력히 권고한다. –

답변

2
s.sendmail(FROM, TO, "the answer is " + str(x)) 

당신은 먼저 +에 의해 문자열 "the answer is "의 끝에 str(x)을 추가, str(x)에 의해 문자열로 x의 값을 변환합니다.

+0

대단히 감사합니다! 이제 작동합니다! – user1224398

+0

또 다른 질문, 이메일 제목을 만드는 방법은 무엇입니까? 지금 아무 주제도 없다. – user1224398

+0

메시지 맨 앞에 제목을 추가해야합니다. 예 : http://effbot.org/pyfaq/how-do-i-send-mail-from-a-python-script.htm –

3

어디서나 볼 수 있듯이 여기에서 문자열 연결을 사용할 수 있습니다.

s.sendmail(FROM, TO, "the answer is " + x) 

아니면 인쇄 형식 구문을 사용할 수 있습니다 :

s.sendmail(FROM, TO, "the answer is {}".format(x)) 

가 더 읽기 : http://docs.python.org/tutorial/inputoutput.html#fancier-output-formatting

+0

x를 str()처럼 던지기를 피하라.하지만 내 대답에는 % s 포매터를 사용한다. –

+0

% 작업을 편집했습니다. I/O 매뉴얼에서 : "str.format()은 매우 새롭기 때문에 많은 파이썬 코드는 여전히 % 연산자를 사용하지만,이 오래된 형식의 서식이 결국 언어에서 제거되므로 str.format() 일반적으로 사용해야합니다. " – mikaelb

+0

신속한 회신에 감사드립니다. 문제 해결됨. – user1224398

1
s=smtplib.SMTP('localhost') 
s.sendmail(FROM, TO, "the answer is %s" % x) # here is the change 

당신은 당신의 문자열에서 %의 포맷을 잊었다!

그래서 :

x = 'hello world' 
s.sendmail(FROM, TO, "the answer is x") 

출력 : the answer is x

그리고 :

x = 'hello world' 
s.sendmail(FROM, TO, "the answer is %s" % x) 

출력 : the answer is hello world

1

귀하의 센드 메일 라인은 다음과 같이해야합니다 :

s.sendmail(FROM, TO, "The answer is "+x) 
+0

답장을 보내 주셔서 감사합니다 ~ – user1224398

관련 문제