perlunity.de - PERL | JAVASCRIPT | PHP | MySQL | APACHE



#!/COMMUNITY

Members: 5382
davon online: 1
weitere User: 36
Click for quality!




26.05.2012 / 01:28

Community-Member werden   |   Paßwort vergessen   |   OnlineMonitor (1) Wer ist online ... OnlineMonitor starten !
     

 

Home


PERLscripts


PHPscripts


JAVAscripts


Hilfreiches


Links2www


Newscenter


Community


Interna




PGP :: Mails per Script verschlüsseln

Der Mailversand einer PGP-Mail erfolgt auf die gleiche Weise, wie sonst auch: sendmail, blat oder smtp. Der einzigste Unterschied ist, daß der eigentlich Text vorher durch ein Unterprogramm per PGP verschlüsselt. Daher eignet sich die Methode auch für die Verschlüsselung von Textdateien und ähnlichem.

#$mailtmp ist der Mailtext
$mailtmp=&pgp(time,$mailtmp) ;
		
open(MAIL,"| /usr/lib/sendmail -t") || die "Kann die E-Mail nicht verschicken." ;
print MAIL "To: $mailto\n";
print MAIL "From: $mailfrom\n";
print MAIL "Subject: $mailsub\n\n" ;
print MAIL $mailtmp ;
close (MAIL) ;
		
		
sub pgp {


my %CONFIG = {
	'PGP_PATH' => '/usr/local/bin/pgp' , #Pfad zu pgp oder pgpe
	'PGP_METHODE' => 1 , # Wenn pgp dann 1, bei pgpe 2
	'PGP_KEY' => 'perl@perl-archiv.de', #Schlüsselauswahl
	'PGP_DIR' => '/home/.pgp' , #Pfad zu den Ringdateien
}; 

my $output_file=shift ;
my $output_text=shift ;
my $pgp_output;


if ($CONFIG{'PGP_METHODE'}==1) {

	#PGP-Path
	$ENV{'PGPPATH'} = $CONFIG{'PGP_DIR'} ;
	my $pgp_options = "-fea +VERBOSE=0" ;

	#PGP-Aufruf
	$pgp_command =  "$CONFIG{'PGP_PATH'} $pgp_options ";
	$pgp_command .= "\"$CONFIG{'PGP_KEY'}\" ";
	$pgp_command .= "> $output_file.pgp";
	
	open (PGPCOMMAND, "| $pgp_command");
	print PGPCOMMAND $output_text;
	close (PGPCOMMAND);

	#Ausgabe
	open(PGPOUTPUT, "< $output_file.pgp");
	while () {
	    $pgp_output .= $_;
	} 
	close (PGPOUTPUT);

	#Tmp-File löschen
	unlink("$output_file.pgp");


} elsif ($CONFIG{'PGP_METHODE'}==2) {


	#PGP-Path
	$ENV{'PGPPATH'} = $CONFIG{'PGP_DIR'} ;

	#Tmp-Datei speichern
	open(PGPOUTPUT, "> $output_file.pgp.tmp");
	print PGPOUTPUT $output_text ;
	close (PGPOUTPUT);

	#PGP-Aufruf
	$pgp_command  = "$CONFIG{'PGP_PATH'} ";
	$pgp_command .= "-r $CONFIG{'PGP_KEY'} ";
	$pgp_command .= "-at ";
	$pgp_command .= "-o $output_file.pgp ";
	$pgp_command .= "$output_file.pgp.tmp " ;
	system($pgp_command) ;  
	
	#Ausgabe
	open(PGPOUTPUT, "< $output_file.pgp");
	while () {
	    $pgp_output .= $_;
	} 
	close (PGPOUTPUT);

	#Tmp-File löschen
	unlink("$output_file.pgp","$output_file.pgp.tmp");
}


###
#Fehler: Nichts verschlüsselt
  
unless ($pgp_output) {
	
     $pgp_output .= "$pgp_command\n\nScript Error: PGP produzierte keinen Output. \n";
     $pgp_output .= "Eine Fehlerquelle ist eine falsche ID für den öffentlichen Schlüssel: \n";
     $pgp_output .= "(pgp_key: $CONFIG{'PGP_KEY'})\n";
     $pgp_output .= "Ein anderer Grund könnte ein falscher Pfad zur pubring.pgp sein: \n";
     $pgp_output .= "(pgp_config_files: $CONFIG{'PGP_DIR'}) \n";
}


###
#Rückgabe
  
return($pgp_output) ;


} 

Die Ringdateien müssen nicht auf dem Server erzeugt werden, ihr könnt die nehmen, die vom Windowspogramm erzeugt wurden. Beim ersten Mailversand erfolgt noch ein Fehler, beim zweiten geht es dann.



zurück Seiten: 1 - 2 - 3 - 4 - 5 - Drucken  


Kommentare

24.01.2002 - 01:30 | Again | sandhase@web.de
Perfekt!Das Script rundet das ganze ab. Kompliment und weiter so. Immer wieder gerne... Kommentar anzeigen
-

Kommentar anfügen







-
-