# Copyright 2014 Rackspace Australia # # Licensed under the Apache License, Version 2.0 (the "License"); you may # not use this file except in compliance with the License. You may obtain # a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the # License for the specific language governing permissions and limitations # under the License. import logging import voluptuous as v import smtplib from email.mime.text import MIMEText from zuul.connection import BaseConnection class SMTPConnection(BaseConnection): driver_name = 'smtp' log = logging.getLogger("connection.smtp") def __init__(self, connection_name, connection_config): super(SMTPConnection, self).__init__(connection_name, connection_config) self.smtp_server = self.connection_config.get( 'server', 'localhost') self.smtp_port = self.connection_config.get('port', 25) self.smtp_default_from = self.connection_config.get( 'default_from', 'zuul') self.smtp_default_to = self.connection_config.get( 'default_to', 'zuul') def sendMail(self, subject, message, from_email=None, to_email=None): # Create a text/plain email message from_email = from_email \ if from_email is not None else self.smtp_default_from to_email = to_email if to_email is not None else self.smtp_default_to msg = MIMEText(message) msg['Subject'] = subject msg['From'] = from_email msg['To'] = to_email try: s = smtplib.SMTP(self.smtp_server, self.smtp_port) s.sendmail(from_email, to_email.split(','), msg.as_string()) s.quit() except: return "Could not send email via SMTP" return def getSchema(): smtp_connection = v.Any(str, v.Schema({}, extra=True)) return smtp_connection