2013년 12월 17일 화요일

[Python] 이미지파일 첨부 MIME Mail전송 라이브러리

import MimeWriter, base64

#
# Writes a multipart mail message: text plus associated graphic
#

mfile = "multimsg.eml"
f = open(mfile, "w")

# Create a MimeWriter
mail = MimeWriter.MimeWriter(f)
mail.addheader("From", "Myeong-hun <mhbaek@kernel.tv")
mail.addheader("To", """My friend1 <linux@kernel.tv>,
     My friend2 <mhbaek@korea.com>""")
mail.addheader("Subject", "The Python You Wanted")
mail.addheader("Received", """from thinker [64.134.121.94] by
mail.holdenweb.com
    (SMTPD32-6.04) id A244C78500BA; Fri, 09 Mar 2001 07:33:38 -0500""")

# Mail will be multi-part: First part explains format
part1 = mail.startmultipartbody ("mixed")
part1.write("This is a MIME-encoded message, with attachments. "
"If you are seeing this message your mail program probably cannot "
"show you the attachments. Please try another program, or read 'Web "
"Programming in Python' to see the attached picture."
"""
안녕하세요.
이미지 파일 첨부 메일입니다.
""")

# Second part is intended to be read
part2 = mail.nextpart()
f = part2.startbody("text/plain")
f.write("Here we have a multipart message. This "
"means that the message body must be processed "
"as MIME-encoded content where possible [which "
"it clearly is in Outlook Express]."
"""

regards
Your Humble Author
""")

# Third part is a graphic, which we encode in base64
part3 = mail.nextpart()
part3.addheader("Content-Transfer-Encoding", "base64")
f = part3.startbody("image/gif", [["Name", "python.gif"]])
b64 = base64.encodestring(open("pythonwin.gif", "rb").read())
f.write(b64)

# Never forget to call lastpart!
mail.lastpart()

Reentrancy Attack: 블록체인 스마트 컨트랙트의 치명적인 취약점

블록체인 기술이 전 세계적으로 주목받으면서 스마트 컨트랙트(Smart Contract)의 사용이 급격히 증가하고 있습니다. 하지만 그만큼 보안 취약점도 함께 늘어나고 있는데, 그 중에서도 Reentrancy Attack(재진입 공격)은 매우 치명적이고...