PageRenderTime 5ms CodeModel.GetById 1ms app.highlight 2ms RepoModel.GetById 1ms app.codeStats 0ms

/boto-2.5.2/bin/pyami_sendmail

#
#! | 52 lines | 48 code | 4 blank | 0 comment | 0 complexity | b40b5c6f881538fcbb4f34e35c7a2517 MD5 | raw file
 1#!/usr/bin/env python
 2# Copyright (c) 2010 Chris Moyer http://coredumped.org/
 3#
 4# Permission is hereby granted, free of charge, to any person obtaining a
 5# copy of this software and associated documentation files (the
 6# "Software"), to deal in the Software without restriction, including
 7# without limitation the rights to use, copy, modify, merge, publish, dis-
 8# tribute, sublicense, and/or sell copies of the Software, and to permit
 9# persons to whom the Software is furnished to do so, subject to the fol-
10# lowing conditions:
11#
12# The above copyright notice and this permission notice shall be included
13# in all copies or substantial portions of the Software.
14#
15# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
16# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABIL-
17# ITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT
18# SHALL THE AUTHOR BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 
19# WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
21
22#
23# Send Mail from a PYAMI instance, or anything that has a boto.cfg
24# properly set up
25#
26VERSION="0.1"
27usage = """%prog [options]
28Sends whatever is on stdin to the recipient specified by your boto.cfg
29or whoevery you specify in the options here.
30"""
31
32if __name__ == "__main__":
33    from boto.utils import notify
34    import sys
35    from optparse import OptionParser
36    parser = OptionParser(version=VERSION, usage=usage)
37    parser.add_option("-t", "--to", help="Optional to address to send to (default from your boto.cfg)", action="store", default=None, dest="to")
38    parser.add_option("-s", "--subject", help="Optional Subject to send this report as", action="store", default="Report", dest="subject")
39    parser.add_option("-f", "--file", help="Optionally, read from a file instead of STDIN", action="store", default=None, dest="file")
40    parser.add_option("--html", help="HTML Format the email", action="store_true", default=False, dest="html")
41    parser.add_option("--no-instance-id", help="If set, don't append the instance id", action="store_false", default=True, dest="append_instance_id")
42
43    (options, args) = parser.parse_args()
44    if options.file:
45        body = open(options.file, 'r').read()
46    else:
47        body = sys.stdin.read()
48
49    if options.html:
50        notify(options.subject, html_body=body, to_string=options.to, append_instance_id=options.append_instance_id)
51    else:
52        notify(options.subject, body=body, to_string=options.to, append_instance_id=options.append_instance_id)