#!/usr/bin/env python

import sys
import libglade
import gtk
import smtplib

# Maintain compatibility with Python 2.2 and below,
# while getting rid of warnings in newer pyGtks.
try:
    True, False
except NameError:
    True, False = 1, 0

class sendmail(libglade.GladeWrapper):

    def _sendmail(self):
        Server=self.SERVER.get_text()
        From=self.FROM.get_text()
        To=self.TO.get_text().split(",")
        Subject=self.SUBJECT.get_text()
        (body_start, body_end) = self.mail.get_buffer().get_bounds()
        Body=self.mail.get_buffer().get_text(body_start,body_end,True)
        msg="From: %s\nTo: %s\nSubject: %s\n\n%s" % (From, reduce(lambda x, y: x+', '+y, To), Subject, Body)
        try:
            mc = smtplib.SMTP(Server)
            mc.sendmail(From, To, msg)
        except:
            print 'Error sending mail through "%s" [%s]' % (Server,sys.exc_value[1])
        else:
            mc.quit()

    #################
    # Signal handlers
    #################

    def quit(self, *args):
        gtk.main_quit()

    def on_sendmail_destroy(self, event):
        self.quit()

    def send(self, button):
        self._sendmail()
        self.quit()

sendmail_styles="""
style "green_button"
{
  fg[PRELIGHT] = { 1.0, 1.0, 1.0 }
  bg[PRELIGHT] = { 0, 0.75, 0 }
}
widget "sendmail.*.Send*" style "green_button"

style "blue_text"
{
  text[NORMAL] = { 0, 0, 0.75 }
}
widget "sendmail.*.mail" style "blue_text"
"""
gtk.rc_parse_string(sendmail_styles)

SENDMAIL = sendmail("./sendmail.glade", "sendmail")

gtk.main()
