2014-07-17 8 views
0

질문을하기 전에 실제로 이것에 대한 답을 찾았지만 알고 싶을 수도있는 다른 사람들을 위해서 (와 답변에) 답변을 게시하고 있습니다. 더 많은 통찰력을 가지고 있다면, 언급 해주십시오.) 편집 : 다른 사람이 (그래서주의 깊게 살펴) 더 나은 대답을했다 :파이썬 프로그램 mailto 링크 만들기

질문 :

내가 이메일을 보낼 수있는 파이썬 프로그램을 만들었다. 그러나 사용자가 클릭 할 때 HTML 전자 메일 링크 (mailto 링크)의 전자 메일 주소와 제목을 캡처 할 수 있도록 기본 전자 메일 클라이언트가되도록 할 수 있습니다.

내 고객에게 이메일 주소 및 제목을 어떻게 받습니까?

현재 내 프로그램을 기본 메일 클라이언트로 설정할 수는 있지만 웹 브라우저에서 어떤 정보 또는 정보 형식을 얻지는 모르겠다. 그래서, 어떻게 파싱하는지 모르겠습니다.

답변

1

를 사용 field가 추가 매개 변수의 사전 될 것이지만,

import urllib.parse 
parsed = urllib.parse.urlparse(sys.argv[1]) 
mail_addr = parsed.path 
fields = urllib.parse.parse_qs(parsed.query) 

이에 이메일을 보낼 수있는 주소로 mail_addr을 설정 sys.argv[1]로 전달됩니다, 당신은 이런 식으로 뭔가를 할 필요가 . //tools.ietf : HTTP -

들이 이메일 링크에서 허용 앞에`body` 요소 또는 다른 것을 사용하는 경우는 어떻게됩니까 RFC 6068

+0

아주 좋은 답변입니다. 나는 그것을 사용할 것이다. 문제는 이메일 프로그램에 반환되는 형식을 알고 싶어하기 때문에 피사체 이상의 것을 가지고있을 때 요소는'&'로 구분됩니다. '[email protected]? Subject = Hello % 20again & Body = body % 20text'. – Shule

+0

답은 % 20 변환 등을 처리합니다. – Shule

+0

쉽게 참조 할 수 있도록 '숨은 참조 (Bcc)'와 '참조 (Cc)'가 가능한 몇 가지 요소가 있습니다. – Shule

-1

대답은 프로그램에 전송되는 인수를 확인하는 것입니다. 사실 정기적 인 주장이 있습니다. 그것은 일을하는 특별한 방법이 아닙니다. import sys을 입력 한 다음 sys.argv (목록)을 사용하여 인수가 무엇인지 알려줍니다. 여기에 흔한 링크가 반환 무엇의 형식입니다 :

[email protected]?Subject=Hello%20again

그래서, 그것은 이메일 링크 마크 업에 넣고 같은 일입니다. 공백 대신에 % 20 등의 방법에주의해야합니다. 일반 문자로 그 (및 기타)을 변환하려면,이 (파이썬 3.4 코드)를 시도 :

import urllib.parse 
my_subject=urllib.parse.unquote(mySubjectText).split("=")[1] #the .split("=")[1] gets rid of the unnecessary `subject=` text 

파이썬 2.x는 당신이 단지 전체 링크를 가정 urllib.unquote(mySubjectText) 대신 urllib.parse.unquote

+1

에 지정되어있을 것으로 예상 할 수있는 필드 (RFC 6068를 참조 .org/html/rfc6068) –

+0

팁 주셔서 감사합니다. mailto 링크에 사용할 수있는 다른 요소가 있는지 몰랐습니다. – Shule