📄 mail-utils.lib
字号:
## RA Server Management Utility ## (c) 1999 by Massimiliano Pala## All Rights Reserved#### Project Information:#### Current Version ..................... $VER## Project Started on .................. 17/12/1998## Last Modified on .................... 09/09/2000## Project Closed on ................... n/a#### Program currently tested with OpenLDAP v.1.2 on Linux, Solaris## and Sleepycat DB.#### DISC CLAIMER: THIS SOFTWARE IS GIVEN AS IS WITHOUT ANY WARRANTIES## ABOUT ANY DAMAGE DERIVED BY THE USE ( CORRECT OR NOT ) OF THIS## SOFTWARE. THE AUTHOR IS THEREFORE NOT RESPONSABLE IN ANY WAY OF## DAMAGES RELATED IN ANY WAY TO THIS OR SUPPORTED SOFTWARE AS WELL.#### If you want to contact me (the author) please use the e-mail## addresses listed below. Do not esitate in reporting bugs, enhancement## or anything seems useful in developing this software:#### madwolf@comune.modena.it## m.pala@mo.nettuno.it## digid@netscape.net##sub warnUsers { my @keys = @_; my ( $filename, $serverDir, $ID, $mail, $user, $tmp ); $serverDir = $keys[0]; return unless $serverDir; $filename = "$serverDir/stuff/lastImport.txt"; ## Let's open the stuff/lastImport.txt if( not -e "$filename" ) { configError( "File $filename not found!"); } $tmp = $query->getFile( "$filename"); if( $tmp eq "" ) { success( "Last Import file was empty."); } my @certsList = split( "\n", $tmp ); foreach $ID ( @certsList ) { my $user, $userCert, $serID; ( $serID ) = ( $ID =~ /([a-f0-9]+)/i ); ## Let's be sure it is in the right format $serID = uc( $serID ); $serID = "0$serID" if( length($serID) % 2 ); print "Sending Mail [$serID] : <B>Certificate Serial " . "$serID (0x0" . hex( $serID ) . ")</B><BR>"; my $cert = $db->getItem ( DATATYPE => VALID_CERTIFICATE, KEY => $serID ); if( not $cert ) { print "<FONT COLOR=\"Red\">"; print "Sending Mail [$serID] : can't get certificate" . " from dB!<BR><BR>\n"; print "</FONT>"; next; } $userCert = $cert->getParsed(); print "Sending Mail [" . $userCert->{SERIAL} . "] : " . $userCert->{CN}; print " ( " . $userCert->{EMAIL} . " )<BR>\n"; if( $userCert->{EMAIL} !~ /.*?\@.*?/ ) { print "<FONT COLOR=\"Red\">"; print "Sending Mail [$serID] : non valid e-mail" . " address!"; print "</FONT><BR><BR>\n"; next; } if( sendMail( $userCert->{EMAIL}, $userCert->{SERIAL}, $userCert->{CN} ) ne "Success") { print "<FONT COLOR=\"Red\">"; print "Sending Mail [$serID] : Can't Send Mail ( $! )"; print "</FONT><BR><BR>\n"; next; }; print "Sending Mail [" . $userCert->{SERIAL} . "] : " . "<B>Mail sent succesfully</B>.<BR><BR>\n"; }}sub sendMail { my @keys = @_; my $line, $mailTo, $serialID; my $txt = ""; my $mailTo = $keys[0]; my $serialID = $keys[1]; my $user = $keys[2]; my $DEBUG = 0; if( ("$mailTo" eq "") || ("$serialID" eq "") || ("$user" eq "") ) { configError("Error Sending Mail 434"); exit 95; }; my $mailCommand = ($config->getParam('mailcommand'))->{VALUES}->[0]; my $mailSenderName = ($config->getParam('mailsendername'))->{VALUES}->[0]; my $mailSenderAddress = ($config->getParam('mailsenderaddress'))->{VALUES}->[0]; my $baseMailFile = ($config->getParam('basemailfile'))->{VALUES}->[0]; if( not ( $txt = $query->getFile( "$baseMailFile" ))) { configError ("Can not open baseMailFile ($baseMailFile)!"); } $txt = $query->subVar( $txt, '@SERIAL@', $serialID ); $txt = $query->subVar( $txt, '@USER@', $user ); $txt = $query->subVar( $txt, '@EMAIL@', $mailTo ); if( not $DEBUG ) { open( FD, "| $mailCommand >/dev/null" ) || return; print FD "From: $mailSenderName \n"; print FD "To: $user <$mailTo>\n"; print FD "Subject: New Issued Certificate (Serial: $serialID)"; print FD "\n"; print FD "$txt"; print FD "\n"; print FD "=====================================================\n"; print FD "Message generated by OpenCA (RAManager) -V. $VER\n"; print FD "(c) 1998 by Massimiliano Pala and the OpenCA Team.\n"; print FD "=====================================================\n"; print FD "\n.\n"; close(FD);} else { ## Debug Version ## print "<PRE>:::> $mailCommand >/dev/null"; ## print ":::> From: $mailSenderName \n"; ## print ":::> To: $user <$mailTo>\n"; ## print ":::> Subject: New Issued Certificate (Serial: $serialID)"; ## print ":::> \n"; ## print ":::> ..."; ## print ":::> \n"; ## print ":::> =====================================================\n"; ## print ":::> Message generated by OpenCA (RAManager) -V. $VER\n"; ## print ":::> (c) 1998 by Massimiliano Pala and the OpenCA Team.\n"; ## print ":::> =====================================================\n"; ## print "\n.\n</PRE>";} if( $? == 0 ) { return "Success"; } else { return "$!"; }}1;___END___;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -