Có một ứng dụng gọi là jutda-helpdesk sử dụng số poplib
và imaplib
của Python để xử lý email đến. Bạn chỉ cần có một tài khoản ở đâu đó với quyền truy cập POP3 hoặc IMAP.
này được chuyển thể từ get_email.py của họ:
def process_mail(mb):
print "Processing: %s" % q
if mb.email_box_type == 'pop3':
if mb.email_box_ssl:
if not mb.email_box_port: mb.email_box_port = 995
server = poplib.POP3_SSL(mb.email_box_host, int(mb.email_box_port))
else:
if not mb.email_box_port: mb.email_box_port = 110
server = poplib.POP3(mb.email_box_host, int(mb.email_box_port))
server.getwelcome()
server.user(mb.email_box_user)
server.pass_(mb.email_box_pass)
messagesInfo = server.list()[1]
for msg in messagesInfo:
msgNum = msg.split(" ")[0]
msgSize = msg.split(" ")[1]
full_message = "\n".join(server.retr(msgNum)[1])
# Do something with the message
server.dele(msgNum)
server.quit()
elif mb.email_box_type == 'imap':
if mb.email_box_ssl:
if not mb.email_box_port: mb.email_box_port = 993
server = imaplib.IMAP4_SSL(mb.email_box_host, int(mb.email_box_port))
else:
if not mb.email_box_port: mb.email_box_port = 143
server = imaplib.IMAP4(mb.email_box_host, int(mb.email_box_port))
server.login(mb.email_box_user, mb.email_box_pass)
server.select(mb.email_box_imap_folder)
status, data = server.search(None, 'ALL')
for num in data[0].split():
status, data = server.fetch(num, '(RFC822)')
full_message = data[0][1]
# Do something with the message
server.store(num, '+FLAGS', '\\Deleted')
server.expunge()
server.close()
server.logout()
mb
chỉ là một số đối tượng để lưu trữ tất cả các thông tin máy chủ mail, phần còn lại nên được khá rõ ràng.
Có thể bạn sẽ cần phải kiểm tra tài liệu trên poplib
và imaplib
để nhận các phần cụ thể của thư, nhưng hy vọng điều này là đủ để giúp bạn tiếp tục.
Xem thêm câu hỏi này: http://stackoverflow.com/questions/640970/email-integration –