2010-06-07 6 views
1

저는 유즈넷에 대한 게시물을 만들기 위해 파이썬과 함께 제공되는 nntplib을 사용하려고합니다. 그러나 .post 메서드를 사용하여 이진 파일을 게시하는 방법을 알아낼 수 없습니다.Python으로 유즈넷에 바이너리를 게시 할 수 있습니까?

평범한 텍스트 파일 만 게시 할 수 있지만 이진 파일은 업로드 할 수 없습니다. 어떤 아이디어?

- EDIT--

그래서 난 내 목표를 향해 한 걸음을 관리했습니다 아래 아드리안의 의견에 감사합니다.

이제 이메일 라이브러리를 사용하여 멀티 파트 메시지를 만들고 이진 파일을 메시지에 첨부합니다. 그러나 그 메시지를 nttplib post 메소드에 직접 전달하는 방법을 알아낼 수 없습니다.

임시 파일을 먼저 작성한 다음 nttplib 메소드로 다시 읽어야합니다. 메모리에서이 모든 것을 수행 할 수있는 방법이 있어야합니다 .... 어떤 제안입니까?

+0

새로운 질문을 별도의 질문으로 게시하십시오 ... (여전히 내 대답을 편집하십시오) –

+0

유즈넷에 바이너리를 게시하는 방법은 여전히 ​​원래의 질문과 동일합니다. – rnavarro

답변

3

게시물을 MIME 인코딩해야합니다. NNTP 뉴스 그룹의 이진 게시물은 첨부 파일이있는 메일과 같습니다. 이 모든 구현 :

파일이

email 모듈에서 봐 가지고 ... 일반적으로 base64 인코딩 한 후 인코딩 된 파일이 패키지로 ITON 여러 부분 MIME 메시지를 사용하여 ASCII로 인코딩 및 게시해야합니다 당신이 원하는 그.

NFC 프로토콜을 정의하는 공식 표준 인 RFC3977을 읽어 보시기 바랍니다. 질문의 두 번째 부분에 대한

: 문자열에서 가짜 파일 객체를 구축

사용 StringIO (nntplib의 post() 방법은 열린 파일 객체를 받아 들인다). email.Message 개체는 메시지 내용을 일반 문자열로 검색하는 방법이 as_string()입니다.

+0

아, 재미있어, 내가 고마워 할게요 Adrien! – rnavarro

관련 문제