From: Michelle D. <md...@oc...> - 2012-08-02 13:15:58
|
I can answer part of your question (sending email) - see my code below. I added this to a file called lib-sendmail.pl and call it from my other code files. One caveat: I'm new to misterhouse and new to perl. So although this works, someone might jump in with a better/righter way to do this :) ----------------------------------------- # Category = Other #@ This module provides outgoing email functions # Call notify_email ($urgent, $subject, $body) # $urgent: 0 for false, 1 for true # $subject: Any string, no newlines # $body: Any string with \n for newlines use Net::SMTP; use strict; sub notify_email { my ($urgent, $subject, $body ) = @_; my $SMARTHOST = "mail.mydomain.com"; my $smtp = Net::SMTP->new(Host => "$SMARTHOST", Hello => 'lserver.mydomain.com', Debug => 0, Timeout => 10); if ($smtp) { $smtp->mail('mis...@my...'); if ($smtp->to("myemail\@mydomain.com")) { # print_log "CallAhead NOT working for Smarthost $SMARTHOST using myemail\@mydomain.com\n"; } else { exit 0; } if (($urgent == 1) && ($smtp->to("user\@mydomain.com"))) { # print_log "CallAhead NOT working for Smarthost $SMARTHOST using myemail\@mydomain.com\n"; } else { exit 0; } # Send the message $smtp->data(); $smtp->datasend("Subject: MisterHouse: $subject\n"); $smtp->datasend("To: Home Monitor\n"); if ($urgent == 1) { $smtp->datasend("To: user <user\@mydomain.com>\n"); $smtp->datasend("Priority: Urgent\n"); $smtp->datasend("Importance: high\n"); } $smtp->datasend("\n"); $smtp->datasend("$body"); $smtp->dataend(); $smtp->quit; } else { # print_log "SMTP: Cant connect to Smarthost: $SMARTHOST\n"; exit 2; } } #notify_email(1,"Urgent Test sub 2","Wow\nthis\nis\ncool"); |