authCode = "aA111111" class MessageServiceHandle: def sendMobileMessage(self, mobile, message): print "sendMobileMessage, mobile:" + mobile + ", message:" + message return True def sendEmailMessage(self, email, message): print "sendEmailMessage, email:" + email + ", message:" + message messageObj = MIMEText(message, "plain", "utf-8") messageObj['From'] = sender messageObj['To'] = email messageObj['Subject'] = Header('慕课网邮件', 'utf-8') try: smtpObj = smtplib.SMTP('smtp.163.com') smtpObj.login(sender, authCode) smtpObj.sendmail(sender, [email], messageObj.as_string()) print "send mail success" return True except smtplib.SMTPException, ex: print "send mail failed!" print ex return False if __name__ == '__main__': handler = MessageServiceHandle() processor = MessageService.Processor(handler) transport = TSocket.TServerSocket(None, "9090") tfactory = TTransport.TFramedTransportFactory() pfactory = TBinaryProtocol.TBinaryProtocolFactory() server = TServer.TSimpleServer(processor, transport, tfactory, pfactory) print "Python thrift server start" server.serve() print "Python thrift server EXIT"
def sendEmail(self, email, message): # 创建邮件信息对象,用SMTP服务器对象发送邮件信息对象 print("send email, email:"+email+", message:"+message) messageObj = MIMEText(message, "plain", "utf-8") messageObj['From'] = sender messageObj['To'] = email messageObj['Header'] = Header('夏雷服务器端发送的邮件', 'utf-8') try: smtpObj = smtplib.SMTP('smtp.163.com') smtpObj.auth_login(sender, authCode) smtpObj.sendmail(sender, [email], messageObj.as_string()) print('send email success') return True except smtplib.SMTPException as ex: print('send email failed') print(ex) return False # 对接 thrift 和 自己写好的类 if __name__ == "__main__": handler = MessageServiceHandler() processor = MessageService.Processor(handler) # 接口类创建出来的对象,和java类似 transport = TSocket.TServerSocket("localhost", "9090") tfactory = TTransport.TFramedTransportFactory() pfactory = TBinaryProtocol.TBinaryProtocolFactory() server = TServer.TSimpleServer(processor, transport, tfactory, pfactory) print("python thrift server start") server.serve() print("python thrift server exit")
def sendEmailMessage(self, email, message): print "sendEmailMessage, email: " + email + ", message:" + message; messageObj = MIMEText(message,"plain", "utf-8") messageObj['From'] = sender messageObj['To'] = email messageObj['Subject'] = Header("IMOOC-Python测试邮件", 'utf-8') try: smtpObj = smtplib.SMTP('smpt.163.com') smtpObj.login(sender, authCode) smtpObj.sendmail(sender, [email], messageObj.as_string()) print "send mail successfully" return True except smtplib.SMTPException, ex: print "send mail failed! " print ex return False if __name__ == '__main__': handler = MessageServiceHandler() processor = MessageService.Processor(handler)#消息来了谁处理->processor处理 transport = TSocket.TServerSocket("localhost", "9090")#开启一个Socket 监听本机上的9090端口 tfactory = TTransport.TFramedTransportFactory()#传输方式: 帧传输 pfactory = TBinaryProtocol.TBinaryProtocolFactory()#传输协议: 二进制的传输协议 #创建一个server server = TServer.TSimpleServer(processor, transport, tfactory, pfactory) print "python thrift server start." server.serve() print "python thrift server exit."
print "sendEmailMessage, email:" + email + ", message:" + message messageObj = MIMEText(message, "plain", "utf-8") messageObj['From'] = sender messageObj['To'] = email messageObj['Subject'] = Header('Faxe邮件', "utf-8") try: smtpObj = smtplib.SMTP('smtp.163.com') smtpObj.login(sender, authcode) smtpObj.sendmail(sender, email, messageObj.as_string()) print "send email success" return True except smtplib.SMTPException, ex: print "send email fail caused by " + ex return False # thrift属于C/S # 消息服务的提供者 Server if __name__ == '__main__': processor = MessageService.Processor(MessageServiceHandler()) # 传输方式 TServerSocket:非阻塞型 socket,用于服务器端 transport = TSocket.TServerSocket("localhost", "9090") # 传输协议 tfactory = TTransport.TFramedTransportFactory() # thrift的默认协议,使用二进制编码格式进行数据传输,基本上直接发送原始数据 pfactory = TBinaryProtocol.TBinaryProtocolFactory() server = TServer.TSimpleServer(processor, transport, tfactory, pfactory) print "python thrift server start" server.serve() print "python thrift server exit"
from thrift.transport import TSocket from thrift.transport import TTransport from thrift.protocol import TBinaryProtocol from message.api import MessageService import time # Make socket transport = TSocket.TSocket('localhost', 8800) # Buffering is critical. Raw sockets are very slow transport = TTransport.TBufferedTransport(transport) # Wrap in a protocol protocol = TBinaryProtocol.TBinaryProtocol(transport) client = MessageService.Client(protocol) transport.open() print(client.send_sendEmailMessage()) time.sleep(100) transport.close()