You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							98 lines
						
					
					
						
							2.5 KiB
						
					
					
				
			
		
		
		
			
			
			
				
					
				
				
					
				
			
		
		
	
	
							98 lines
						
					
					
						
							2.5 KiB
						
					
					
				
								#!/usr/bin/perl
							 | 
						|
								#
							 | 
						|
								# $Id: maillib.pl,v 1.2 2004/01/13 19:22:04 jeffo Exp $
							 | 
						|
								#
							 | 
						|
								# Source File: maillib.pl
							 | 
						|
								
							 | 
						|
								
							 | 
						|
								use Net::SMTP;
							 | 
						|
								
							 | 
						|
								#sub send_mail {
							 | 
						|
								#	open(SENDMAIL, "|/usr/lib/sendmail -oi -t")
							 | 
						|
								#		or $msg2 = "Can't fork for sendmail: $!\n";
							 | 
						|
								#	print SENDMAIL <<"EOF";
							 | 
						|
								#From: $_[0]
							 | 
						|
								#To: $_[1]
							 | 
						|
								#Subject: $_[2]
							 | 
						|
								#
							 | 
						|
								#
							 | 
						|
								#
							 | 
						|
								#$_[3]
							 | 
						|
								#EOF
							 | 
						|
								#close(SENDMAIL)     or $msg2 = "sendmail didn't close nicely";
							 | 
						|
								#}
							 | 
						|
								
							 | 
						|
								sub send_mail {
							 | 
						|
									$subj = $_[2];
							 | 
						|
									warn "maillib.pl send_mail called SUBJ is $subj X" ;
							 | 
						|
									warn "maillib.pl send_mail called TO is $_[1] FROM is $_[0] X" ;
							 | 
						|
									warn "send_mail called mail_server_domain is $mail_server_domain X" ;
							 | 
						|
									if ( $subj =~ /\:/) {
							 | 
						|
										$maildir = join( $pathsep, $pubroot, $SESSION{'clid'}, "notify");
							 | 
						|
										$mmdate = &format_date_time("dd-mmm-yyyy", time, "0");
							 | 
						|
										$mmtime = &format_date_time("hh:nn:ss", time, "0");
							 | 
						|
										$filename=join(' ', $_[2],$mmdate,$mmtime);
							 | 
						|
										$filename =~ s/ /_/g;
							 | 
						|
										$trash = join( $pathsep, $maildir, $filename);
							 | 
						|
										if (open( MAILFILE, ">$trash" )) {
							 | 
						|
											print MAILFILE "From:$_[0]\nTo: $_[1]\nSubject: $_[2]\n$_[3]\n";
							 | 
						|
											close MAILFILE;
							 | 
						|
										}
							 | 
						|
									}
							 | 
						|
								#v wac add ability to send to a list of recipients 6/18/02, adapt W2K fix from 8/21/01
							 | 
						|
									@recipients = split(/\,/, $_[1]);
							 | 
						|
								 
							 | 
						|
								$trash = join( $pathsep, $secroot, "debug.txt");
							 | 
						|
								open( DBGFILE, ">>$trash" ) || return 0;
							 | 
						|
									$smtp =  Net::SMTP -> new ($mail_server_domain,
							 | 
						|
														Timeout => '60'
							 | 
						|
														);
							 | 
						|
								print DBGFILE "MAIL: mark\n";
							 | 
						|
								#print DBGFILE "MAIL: new\n";
							 | 
						|
									$smtp-> mail ("$_[0]");
							 | 
						|
								#print DBGFILE "MAIL: from\n";
							 | 
						|
									
							 | 
						|
									foreach $recipient (@recipients) {
							 | 
						|
										$smtp-> recipient ("$recipient",
							 | 
						|
													Skipbad  =>  TRUE);
							 | 
						|
									}
							 | 
						|
								
							 | 
						|
								#print DBGFILE "MAIL: recips specified\n";
							 | 
						|
									$smtp-> data();
							 | 
						|
									$smtp -> datasend ("From: $_[0]\nTo: $_[1]\nSubject: $_[2]\n$_[3]");
							 | 
						|
									$smtp -> dataend;
							 | 
						|
								#print DBGFILE "MAIL: data\n";
							 | 
						|
									$smtp -> quit;
							 | 
						|
								#print DBGFILE "MAIL: done\n";
							 | 
						|
								close DBGFILE;
							 | 
						|
								}
							 | 
						|
								
							 | 
						|
								#wac ^  replaced whole subroutine, had to adapt to retain debug statements.
							 | 
						|
								
							 | 
						|
								sub send_illegal_attempt {
							 | 
						|
									$capturedenv = "";
							 | 
						|
									for (keys %ENV) {
							 | 
						|
										$capturedenv = join('', $capturedenv, "$_ = $ENV{$_}\r\n");
							 | 
						|
									}
							 | 
						|
									$mmdate = &format_date_time("dd-mmm-yyyy", time, "0");
							 | 
						|
									$mmtime = &format_date_time("hh:nn:ss", time, "0");
							 | 
						|
									$mmsubj = "ILLEGAL ACCESS ATTEMPT";
							 | 
						|
									$mmbody = "Date: $mmdate
							 | 
						|
								An illegal attempt to access the site has occurred.
							 | 
						|
								
							 | 
						|
								USER_AGENT:		$ENV{'HTTP_USER_AGENT'}
							 | 
						|
								REMOTE_ADDR:	$ENV{'REMOTE_ADDR'}
							 | 
						|
								HTTP_REFERER:	$ENV{'HTTP_REFERER'}
							 | 
						|
								REQUEST_METHOD:	$ENV{'REQUEST_METHOD'}
							 | 
						|
								SERVER_PORT:	$ENV{'SERVER_PORT'}
							 | 
						|
								QUERY_STRING:	$qstr
							 | 
						|
								
							 | 
						|
								ENVIRONMENT:
							 | 
						|
								$capturedenv
							 | 
						|
								";
							 | 
						|
									&send_mail($mmautontfyfrom, $mmautontfyto, $mmsubj, $mmbody);
							 | 
						|
								}
							 | 
						|
								
							 | 
						|
								
							 | 
						|
								# end with True because this is a require file
							 | 
						|
								1
							 | 
						|
								
							 |