def post(self): if self.user: user = User.get_by_id(int(self.user_id)) action = self.request.get('action') if action == "sendMessageAjax": messageSTRING = self.request.get('message') #fecthing message sent by ajax messageJSON = json.loads(messageSTRING) receiver_id = messageJSON[3]['receiver_id'] recipient = User.get_by_id(int(receiver_id)) #dict to hold message message = {} #determining how message will be saved message['msg_type'] = "new message to" message['category'] = messageJSON[0]['type'] message['receiver_profile'] = recipient.user_profile #has to be the email of the receiver not the sender. Must change this message['receiver'] = recipient message['sender'] = user #message details to be sent through mandrill message['sender_email'] = user.alias message['sender_name'] = user.first_name +" "+ user.last_name message['receiver_email'] = recipient.email message['receiver_name'] = recipient.first_name +" "+ recipient.last_name message['subject'] = messageJSON[1]['subject'] message['content'] = messageJSON[2]['content'] message['receiver_id'] = messageJSON[3]['receiver_id'] message['notification_email'] = messageJSON[4]['notification_email'] message['reply_to'] = user.alias #sender alias message['date'] = strftime("%a, %d %b %Y %X +0000", gmtime()) ################################## working on this at the moment ############################# # print message #confirming email was sent # message_status = mailhandler.outBoundMail(message) # msg = Message.create(message) message_status = mailhandler.composeNewMail(message) # self.response.write(message) print message_status self.response.write(message_status) else: self.redirect('/compose') else: self.redirect('/compose')
def post(self, user_id): def sessionDetails(session,message): session['subject'] = message['subject'] session['notify-email'] = message['notification_email'] session['message'] = message['content'] # session[] def getMessage(user, recipient): #dict to hold message message = {} #determining how message will be saved message['msg_type'] = "new message to" message['category'] = self.request.get("type-of-email") message['receiver_profile'] = recipient.user_profile #has to be the email of the receiver not the sender. Must change this message['receiver'] = recipient message['sender'] = user #message details to be sent through mandrill message['sender_email'] = user.alias message['sender_name'] = user.first_name +" "+ user.last_name message['receiver_email'] = recipient.email message['receiver_name'] = recipient.first_name +" "+ recipient.last_name message['subject'] = self.request.get("subject") message['content'] = self.request.get("message") message['receiver_id'] = recipient.key().id() message['notification_email'] = self.request.get("notify-email") message['reply_to'] = user.alias #sender alias message['date'] = strftime("%a, %d %b %Y %X +0000", gmtime()) return message def validateMessage(message): soup = BeautifulSoup(message['content']) return emailvalid.check_email(message['notification_email']) and len(soup.get_text()) > 0 and message['subject'] != "" if self.user: user = self.getUser(self.user_id) recipient_id = self.request.get("recipient") recipient = self.getUser(recipient_id) message = getMessage(user, recipient) form_is_valid = validateMessage(message) session = get_current_session() if form_is_valid: session['subject'] = "" session['notify-email'] = "" session['message'] = "" session['message_status'] = "" if session["xsrf_token"] == self.request.get("token"): message_status = mailhandler.composeNewMail(message) if message_status == False: self.redirect("/messages/compose/%d" %(int(recipient_id))) else: self.redirect("/messages/sent") else: self.redirect("/messages/compose/%d" %(int(recipient_id))) else: sessionDetails(session, message) self.redirect("/messages/compose/%d" %(int(recipient_id)))