def mail_smtp(server,serverpw,to_address,from_address,loginuser,subject,content,charset="latin-1"): """ Send subject/content, as latin-1 by default String-Parameter; subject/content may be unicode or str. :returns: None :param server: e.g.."mail.gmx.net" :param serverpw: SMTP server password """ import sys import smtplib import socket from email.MIMEText import MIMEText try: server = smtplib.SMTP(server) #server.set_debuglevel(1) except socket.gaierror: e,f,g = sys.exc_info() msg = "ERROR:%s,%s \n%s"%(e,f, traceToShortStr()) sys.stderr.write(msg) sys.stderr.write("(Network down? No DNS resolution?)") return except: e,f,g = sys.exc_info() msg = "ERROR:%s,%s \n%s"%(e,f, traceToShortStr()) sys.stderr.write(msg) return try: server.login(loginuser, serverpw) except: e,f,g = sys.exc_info() msg = "ERROR login:%s,%s\n%s"%(e,f, traceToShortStr()) sys.stderr.write(msg) return msg = MIMEText(content,_charset=charset) msg["From"] = from_address msg["To"] = to_address msg["Subject"] = subject try: server.sendmail(from_address, (to_address,), msg.as_string()) except: e,f,g = sys.exc_info() msg = "ERROR sendmail:%s,%s"%(e,f) sys.stderr.write(msg) msg = "ERROR sendmail; server=%s, from=%s, to=%s"%(server, from_address, to_address) sys.stderr.write(msg.encode("ascii","backslashreplace")) try: server.quit() except: e,f,g = sys.exc_info() print("ERROR quit:%s,%s"%(e,f))
def create_message(from_addr, from_addr_name, to_addr, subject, body): cset = 'utf-8' msg = MIMEMultipart() msg["Subject"] = subject msg["From"] = from_addr_name + "<" + from_addr + ">" msg["To"] = to_addr msg["Date"] = formatdate() body = MIMEText(body.encode("utf-8"), 'plain', 'utf-8') msg.attach(body) return msg
def create_message(from_addr, to_addr, subject, body, mime=None, attach_file=None): """ メッセージを作成する @:param from_addr 差出人 @:param to_addr 宛先 @:param subject 件名 @:param body 本文 @:param mime MIME @:param attach_file 添付ファイル @:return メッセージ """ msg = MIMEMultipart() msg["From"] = from_addr msg["To"] = to_addr msg["Date"] = formatdate() msg["Subject"] = subject body = MIMEText(body.encode('utf-8')) msg.attach(body) # 添付ファイル if mime != None and attach_file != None: attachment = MIMEBase(mime['type'], mime['subtype']) file = open(attach_file['path']) attachment.set_payload(file.read()) file.close() Encoders.encode_base64(attachment) msg.attach(attachment) attachment.add_header("Content-Disposition", "attachment", filename=attach_file['name']) return msg