summaryrefslogtreecommitdiff
path: root/solenv/bin/modules/installer/mail.pm
diff options
context:
space:
mode:
Diffstat (limited to 'solenv/bin/modules/installer/mail.pm')
-rw-r--r--solenv/bin/modules/installer/mail.pm136
1 files changed, 136 insertions, 0 deletions
diff --git a/solenv/bin/modules/installer/mail.pm b/solenv/bin/modules/installer/mail.pm
new file mode 100644
index 000000000000..3580b3f3b6ab
--- /dev/null
+++ b/solenv/bin/modules/installer/mail.pm
@@ -0,0 +1,136 @@
+#*************************************************************************
+#
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# Copyright 2000, 2010 Oracle and/or its affiliates.
+#
+# OpenOffice.org - a multi-platform office productivity suite
+#
+# This file is part of OpenOffice.org.
+#
+# OpenOffice.org is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License version 3
+# only, as published by the Free Software Foundation.
+#
+# OpenOffice.org 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 Lesser General Public License version 3 for more details
+# (a copy is included in the LICENSE file that accompanied this code).
+#
+# You should have received a copy of the GNU Lesser General Public License
+# version 3 along with OpenOffice.org. If not, see
+# <http://www.openoffice.org/license.html>
+# for a copy of the LGPLv3 License.
+#
+#*************************************************************************
+
+package installer::mail;
+
+use Net::SMTP;
+use installer::converter;
+use installer::exiter;
+use installer::ziplist;
+
+#########################################
+# Sending a mail
+#########################################
+
+sub send_mail
+{
+ my ($message, $listenerstring, $mailinfostring, $languagesref, $destdir) = @_;
+
+ my $listener = installer::converter::convert_stringlist_into_array($listenerstring, ",");
+ my $mailinfo = installer::converter::convert_stringlist_into_array($mailinfostring, ",");
+
+ my @listener = ();
+
+ for ( my $i = 0; $i <= $#{$listener}; $i++ ) { push(@listener, ${$listener}[$i]); }
+ for ( my $i = 0; $i <= $#{$mailinfo}; $i++ ) { ${$mailinfo}[$i] =~ s/\s*$//g; }
+
+ my $smtphost = ${$mailinfo}[0];
+ my $account = ${$mailinfo}[1];
+ my $sender = ${$mailinfo}[2];
+
+ if ( ! $smtphost ) { installer::exiter::exit_program("ERROR: Could not read SMTP Host in list file!", "send_mail"); }
+ if ( ! $account ) { installer::exiter::exit_program("ERROR: Could not read Account in list file!", "send_mail"); }
+ if ( ! $sender ) { installer::exiter::exit_program("ERROR: Could not read Sender in list file!", "send_mail"); }
+
+ my $subject = "";
+ my $basestring = $installer::globals::product . " " . $installer::globals::compiler . $installer::globals::productextension . " " . $installer::globals::build. " " . $installer::globals::buildid . " " . $$languagesref . "\n";
+ if ( $message eq "ERROR" ) { $subject = "ERROR: $basestring" }
+ if ( $message eq "SUCCESS" ) { $subject = "SUCCESS: $basestring" }
+
+ my @message = ();
+
+ my $recipient_string = join ',', @listener;
+ push(@message, "Subject: $subject");
+ push(@message, "To: $recipient_string");
+ push(@message, "\n");
+ push(@message, "Located at $destdir");
+
+ if ( $message eq "ERROR" )
+ {
+ for ( my $j = 0; $j <= $#installer::globals::errorlogfileinfo; $j++ )
+ {
+ my $line = $installer::globals::errorlogfileinfo[$j];
+ $line =~ s/\s*$//g;
+ push(@message, $line);
+ }
+ }
+
+ for ( my $i = 0; $i <= $#message; $i++ ) { $message[$i] = $message[$i] . "\015\012"; }
+
+ my $smtp = Net::SMTP->new( $smtphost, Hello => $account, Debug => 0 );
+
+ # set sender
+ $smtp->mail($sender);
+
+ # listener
+ my @good_addresses = ();
+ $smtp->recipient( @listener, { SkipBad => 1 } );
+
+ # send message
+ $smtp->data(\@message);
+
+ # quit server
+ $smtp->quit();
+}
+
+sub send_fail_mail
+{
+ my ($allsettingsarrayref, $languagestringref, $errordir) = @_;
+
+ # sending a mail into the error board
+ my $listener = "";
+ $listener = installer::ziplist::getinfofromziplist($allsettingsarrayref, "fail");
+
+ if ( $$listener )
+ {
+ my $mailinfo = installer::ziplist::getinfofromziplist($allsettingsarrayref, "mailinfo");
+
+ if ( $$mailinfo ) { send_mail("ERROR", $listener, $mailinfo, $languagestringref, $errordir); }
+ else { installer::exiter::exit_program("ERROR: Could not read mailinfo in list file!", "send_fail_mail"); }
+ }
+}
+
+sub send_success_mail
+{
+ my ($allsettingsarrayref, $languagestringref, $completeshipinstalldir) = @_;
+
+ # sending success mail
+ my $listener = "";
+ $listener = installer::ziplist::getinfofromziplist($allsettingsarrayref, "success");
+
+ if ( $$listener )
+ {
+ my $mailinfo = installer::ziplist::getinfofromziplist($allsettingsarrayref, "mailinfo");
+
+ if ( $$mailinfo ) { send_mail("SUCCESS", $listener, $mailinfo, $languagestringref, $completeshipinstalldir); }
+ else { installer::exiter::exit_program("ERROR: Could not read mailinfo in list file!", "send_success_mail"); }
+
+ }
+}
+
+
+1;