##// END OF EJS Templates
Add mousetrap.js file from Mousetrap 1.4.5, under the Apache license....
Add mousetrap.js file from Mousetrap 1.4.5, under the Apache license. The file was download and verified via these commands: $ git clone https://github.com/ccampbell/mousetrap.git $ cd mousetrap; git checkout 1.4.5 The file in that repository named mousetrap.js is exactly the same one that appeared in RhodeCode 2.2.5 in changeset c8d3c0d61d95. The mousetrap.js states clearly that it is licensed under Apache-2.0.

File last commit:

r4116:ffd45b18 rhodecode-2.2.5-gpl
r4126:158ef336 rhodecode-2.2.5-gpl
Show More
smtp_mailer.py
103 lines | 3.4 KiB | text/x-python | PythonLexer
Notification fixes...
r1717 # -*- coding: utf-8 -*-
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
Bradley M. Kuhn
Imported some of the GPLv3'd changes from RhodeCode v2.2.5....
r4116 """
rhodecode.lib.rcmail.smtp_mailer
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Simple smtp mailer used in RhodeCode
:created_on: Sep 13, 2010
:author: marcink
:copyright: (c) 2013 RhodeCode GmbH.
:license: GPLv3, see LICENSE for more details.
"""
fixes #481 rhodecode emails are sent without Date header...
r2452 import time
Notification fixes...
r1717 import logging
import smtplib
from socket import sslerror
fixes #481 rhodecode emails are sent without Date header...
r2452 from email.utils import formatdate
Notification fixes...
r1717 from rhodecode.lib.rcmail.message import Message
Use local_hostname in mailer
r2495 from rhodecode.lib.rcmail.utils import DNS_NAME
Notification fixes...
r1717
2012 copyrights
r1824
Notification fixes...
r1717 class SmtpMailer(object):
"""SMTP mailer class
mailer = SmtpMailer(mail_from, user, passwd, mail_server, smtp_auth
mail_port, ssl, tls)
mailer.send(recipients, subject, body, attachment_files)
:param recipients might be a list of string or single string
:param attachment_files is a dict of {filename:location}
it tries to guess the mimetype and attach the file
"""
def __init__(self, mail_from, user, passwd, mail_server, smtp_auth=None,
mail_port=None, ssl=False, tls=False, debug=False):
self.mail_from = mail_from
self.mail_server = mail_server
self.mail_port = mail_port
self.user = user
self.passwd = passwd
self.ssl = ssl
self.tls = tls
self.debug = debug
self.auth = smtp_auth
def send(self, recipients=[], subject='', body='', html='',
attachment_files=None):
if isinstance(recipients, basestring):
recipients = [recipients]
fixes #481 rhodecode emails are sent without Date header...
r2452 headers = {
'Date': formatdate(time.time())
}
Changed default recipients separator for mails to ', '
r1846 msg = Message(subject, recipients, body, html, self.mail_from,
fixes #481 rhodecode emails are sent without Date header...
r2452 recipients_separator=", ", extra_headers=headers)
Notification fixes...
r1717 raw_msg = msg.to_message()
if self.ssl:
Use local_hostname in mailer
r2495 smtp_serv = smtplib.SMTP_SSL(self.mail_server, self.mail_port,
local_hostname=DNS_NAME.get_fqdn())
Notification fixes...
r1717 else:
Use local_hostname in mailer
r2495 smtp_serv = smtplib.SMTP(self.mail_server, self.mail_port,
local_hostname=DNS_NAME.get_fqdn())
Notification fixes...
r1717
if self.tls:
smtp_serv.ehlo()
smtp_serv.starttls()
if self.debug:
smtp_serv.set_debuglevel(1)
smtp_serv.ehlo()
if self.auth:
smtp_serv.esmtp_features["auth"] = self.auth
# if server requires authorization you must provide login and password
# but only if we have them
if self.user and self.passwd:
smtp_serv.login(self.user, self.passwd)
smtp_serv.sendmail(msg.sender, msg.send_to, raw_msg.as_string())
logging.info('MAIL SEND TO: %s' % recipients)
try:
smtp_serv.quit()
except sslerror:
# sslerror is raised in tls connections on closing sometimes
Use local_hostname in mailer
r2495 smtp_serv.close()