첨부파일 분리는 베타 테스트 중인 1.5 부터 자체적으로 지원하는 기능인데, 삽입한 이미지를 분리하는 기능은 아직 없는 것 같습니다.
한가지 방법이 있다면 간단한 프로그램으로 메일박스를 직접 조작하는 것입니다.영문 버전을 사용하는 경우, 선더버드 프로파일 디렉토리 안에서 Sent, Sent.msf 라는 파일을 찾을 수 있습니다. 여기서 Sent 라는 파일은 mbox 형태로 저장된 보낸 편지함의 메일들이고 Sent.msf 는 인덱스와 메일에 대한 메타 정보를 포함한 데이터베이스 파일입니다.
mbox 의 데이터를 변경하는 여러가지 방법이 있겠지만, 이것 저것 시도해보니 python을 이용해서 스크립트를 작성하는 것이 제일 쉬운 것 같습니다. 아래는 제가 작성한 간단한 스크립트 입니다. (제 첫번째 python 프로그램입니다. 공부하면서 짠 것이라 조금 부실하네요.
)
Code: Select all
import mailbox
import email
import base64
replaced_image = base64.encodestring(open("removed.png","rb").read())
fp_in = open("mbox")
firstline = fp_in.readline()
mbox = mailbox.UnixMailbox(fp_in, email.message_from_file)
fp_out = open("mbox_out","w")
fp_out.write(firstline)
msg = mbox.next()
while msg != None :
for part in msg.walk():
if part.get_content_maintype() == "image" and part['Content-ID'] :
part['Content-Type'] = 'image/png'
part['filename'] = "removed.png"
part.set_payload(replaced_image)
fp_out.write(msg.as_string())
msg = mbox.next()
fp_out.close()
스크립트를 이용하는 방법은 다음과 같습니다.
0. Python 이 없으면 설치해야겠죠?
1. 선더버드를 띄워
보낸 편지함을 압축하고 나서 선더버드를 종료합니다.
2. Sent 파일을 임의의 디렉토리에 복사하고 파일 이름을 mbox 로 바꿉니다.
3. 같은 디렉토리에 위 스크립트를 replace_image.py 라는 이름으로 저장합니다.
4. 원본 이미지가 삭제되었다는 것을 알려주는 작은 이미지를 하나 만들어서 removed.png 로 저장합니다.
5. 명령줄에서 python replace_image.py 를 실행합니다.
6. 스크립트가 종료되면 원본 이미지가 작은 이미지로 바뀐 mbox_out 이라는 메일 박스가 생깁니다.
7. 파일 이름을 Sent로 바꾸고 프로파일 디렉토리에 덮어 씁니다.
8. 프로파일 디렉토리에 있는 Sent.msf 를 삭제합니다. ( 이 파일은 선더버드를 시작할 때 자동으로 다시 생깁니다)
9. 선더버드를 다시 띄웁니다~.
한가지 문제는 msf 파일을 새로 생성하기 때문에 저장된 메타 정보(Read/Unread, Flag 정도 등) 가 없어진다는 것인데, 보낸 편지함이라면 별 문제가 없겠죠? 이것이 괜찮다면 스크립트를 한 번 이용해보시기 바랍니다. 설명은 복잡한데 알고 보면 간단한 일입니다.
제가 테스트할 때 사용한 removed.png 와 replace_image.py를 압축해서 올려놓았으니 참고하시길 바랍니다.
http://oooko.net/gomme/wp-content/uploa ... _image.zip