SimpleMailTransferProtocol 메일을 주고받기 위해 사용하는 [[TCP]]/[[IP]]프로토콜. 서버들 사이에서 E-mail을 전송하고 받기 위해서 일반적으로 이용된다. 포트25번을 사용하며, 클라이언트가 요청/응답의 간단한 대화를 통하여 SMTP서버와 연결을 만들고, 메세지를 보내는 사람과 받는사람(들)의 메일주소를 전송한다. 서버가 메일주소를 받아들이면 그때 클라이언트가 메세지를 전송한다. 항상 인터넷에 연결되어 있지 않은 호스트들을 위해 [[POP3]]는 우체국처럼 작업한다. 대표적인 프로그램으로 * Mail User Agents * [[Eudora]] * NescapeMail * [[Mush]] * ElmPine * ThunderBird * Mail Transfer Agents * SendMail * NetscapeMailServer * MicroSoftMail * [[Smail]], [[Zmail]], [[MMDF]] * [[Qmail]] * PostFix * Mail Delivery Agents * ProcMail 메일서버를 돌리려면, pop, imap서버가 따로 필요하다. (특히, PostFix의 경우) * [[Dovecot]] * [[Cyrus]] 웹메일 프로그램 * SquirrelMail 웹메일 서비스 * [[Gmail]] == UbuntuLinux, DDNS환경에서 메일서버 세팅하기 == UbuntuLinux, [[DDNS]]환경에서 PostFix, [[Dovecot]], SquirrelMail으로 메일서버 세팅하기. (꽤 까다로운 점이 있었는데, 원래 도메인으로는 안되던것. mail. 호스트를 따로 지정해야만 동작했다.) -- [[yong27]] <> {{{ # apt-get install postfix # apt-get install dovecot # apt-get install squirrelmail # vi /etc/postfix/main.cf myhostname = mail.mydomainname # vi /etc/dovecot/dovecot.conf # squirrelmail-config }}} == Python 메일발송 == 메일발송 스크립트. (여기서 msg.txt의 첫 라인은 제목으로 처리됨) {{{#!python #!/usr/bin/env python # -*- coding: utf-8 -*- import smtplib, sys from email.MIMEText import MIMEText Usage = "./bulkmail.py address.txt < msg.txt" try: addressFileName = sys.argv[1] except IndexError: print Usage sys.exit(1) toEuckr = lambda s: unicode(s, 'utf-8').encode('euc-kr') server = smtplib.SMTP('biohackers.net') #server.set_debuglevel(1) fromaddr = toEuckr('김형용 ') subject = toEuckr(sys.stdin.readline()) contents = toEuckr(sys.stdin.read()) for line in file(addressFileName): toaddr = line.strip() sys.stdout.write(toaddr+'... ') msg = MIMEText(contents,'plain','euc-kr') msg['From'] = fromaddr msg['To'] = toaddr msg['Subject'] = subject server.sendmail(fromaddr, toaddr, msg.as_string()) sys.stdout.write('completed\n') server.quit() }}}