2014-10-31 2 views
0

내 사이트에 맞춤 초대 앱을 만들었습니다. 초대장을 활성화하려면 이메일로 보낸 링크를 따라야합니다.문자열에 콜론 사용

문제는 그 다음, 내 이메일 기능에 문제가 다음과 같습니다 메시지로 문자열을 보내는 데 전송된다 : 수많은 테스트 후

custom_message = "http://www.something.com%s" % invite.get_absolute_url() 

를, 그것 때문에 문제가 :와 함께 할 것 같다 모든 것이 제대로 작동하는 것 같습니다.

콜론이 필요하지 않습니다. http://의 전체 내용을 그대로 둘 수 있습니다.

def send_custom_email(recipient, custom_message): 

    to = recipient 
    gmail_user = '[email protected]' 
    gmail_pwd = GMAIL_PWD 
    smtpserver = smtplib.SMTP("smtp.gmail.com",587) 
    smtpserver.ehlo() 
    smtpserver.starttls() 
    smtpserver.ehlo 
    smtpserver.login(gmail_user, gmail_pwd) 
    header = 'To:' + to + '\n' + 'From: ' + gmail_user + '\n' + 'Subject:Invite Link \n' 
    print header 

    unicoded_custom_message = unicode(custom_message) 
    msg = header + unicoded_custom_message 

    smtpserver.sendmail(gmail_user, to, msg) 
    print 'done!' 
    smtpserver.close() 

테스트 :

>>> custom_message ="http://www.somesite.com%s" 
>>> send_custom_email(recipient='[email protected]', custom_message=custom_message) 
To:[email protected] 
From: [email protected] 
Subject:Invite Link 

done! 
하지만 내 send_custom_email() 기능 참고로

에이 문자열을 전달할 때이 기능이 작동하지 않습니다 이유는 호기심이 내 내 이메일 전송 기능입니다

전자 메일이 전송되었지만 메시지가 표시되지 않음 render

+0

이 예제가 완료 되었습니까? 나는 포맷팅 연산자 ('%') 나'.format()'호출을 기대했다. –

+1

당신은 "문제가있다"고 말하며 그 문제는 콜론이있는 것처럼 보입니다 만, 당신이 받고있는 오류를 지정하지 않으므로 여기에서 무슨 일이 일어나고 있는지 알 수 없습니다. 가능한 한 많은 정보를 제공해주십시오. – Totem

+0

내 OP에서 'custom_message'의 내용을 포맷터를 포함하도록 업데이트했습니다. 내가 그것을 버린 이유는 그것이 부적절 해 보였기 때문입니다. 오류에 관해서는, 나는 어떤 오류도 받고 있지 않다, 이것은 문제이다. 전체 문자열은 단순히 메시지 본문에 포함되지 않습니다. 완전히 빠졌지 만 조용히 실패하는 것 같습니다. – ApathyBear

답변

2

생성 된 전자 메일의 형식이 전자 메일의 형식 인

은 헤더의 주요 뒤에 공백을있을 가지고 있으며, 두 줄 바꿈이 그렇게 메시지를 분리 할이 있습니다 : 당신이 그것을 구성되기 때문에, 링크가 이메일 헤더로

header = 'To: ' + to + '\n' + 'From: ' + gmail_user + '\n' + 'Subject: Invite Link \n\n' 

를 해석됩니다.

또한 장고에 내장 된 이메일 기능을 사용해보십시오. 귀하의 코드는 취약한 tp 헤더 삽입입니다. 읽어주세요 : https://docs.djangoproject.com/en/dev/topics/email/!

+0

와우, 고마워요! – ApathyBear