/[sap_import]/mail2sap.pl
This is repository of my old source code which isn't updated any more. Go to git.rot13.org for current projects!
ViewVC logotype

Diff of /mail2sap.pl

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.3 by dpavlin, Tue Nov 19 09:03:22 2002 UTC revision 1.8 by dpavlin, Tue Feb 4 13:03:07 2003 UTC
# Line 1  Line 1 
1  #!/usr/bin/perl -w  #!/usr/bin/suidperl
2    
3  # read e-mail from stdit (pipe from /etc/aliases) and call SAP rfc function  # read e-mail from stdit (pipe from /etc/aliases) and call SAP rfc function
4  #  #
# Line 22  my $outdir = $config->{outdir} || die "c Line 22  my $outdir = $config->{outdir} || die "c
22  # temporary directory (ON SAME FILESYSTEM AS $outdir -- we use rename!)  # temporary directory (ON SAME FILESYSTEM AS $outdir -- we use rename!)
23  # for extraction of *ALL* attachements  # for extraction of *ALL* attachements
24  my $msgdir = $config->{msgdir} || die "config: no <msgdir> defined";  my $msgdir = $config->{msgdir} || die "config: no <msgdir> defined";
25    my $mntdir = $msgdir;
26    $msgdir .="/mime";
27  $msgdir .= "$$";        # append PID to make it unique  $msgdir .= "$$";        # append PID to make it unique
28  my $log = $config->{log} || die "config: no <log> defined";  my $log = $config->{log} || die "config: no <log> defined";
29    
# Line 29  my $log = $config->{log} || die "config: Line 31  my $log = $config->{log} || die "config:
31  open(LOG,">> $log") || warn "open log $log: $!";  open(LOG,">> $log") || warn "open log $log: $!";
32  local $SIG{__DIE__} = sub { print LOG $_[0] ; die $_[0] };  local $SIG{__DIE__} = sub { print LOG $_[0] ; die $_[0] };
33    
 # init SAP rfc  
 #  
 my $rfc = new SAP::Rfc(  
         ASHOST  => $config->{sap}->{ashost},  
         USER    => $config->{sap}->{user},  
         PASSWD  => $config->{sap}->{passwd},  
         LANG    => $config->{sap}->{lang},  
         CLIENT  => $config->{sap}->{client},  
         SYSNR   => $config->{sap}->{sysnr},  
         TRACE   => $config->{sap}->{trace}  
         ) || die "new: $!";  
   
   
 # no user editable content beyond this point  
   
34  umask 022;      # world readable  umask 022;      # world readable
35    
 $rfc->is_connected || die "SAP rfc: not connected";  
36    
37  #------------------------------------------------------------  #------------------------------------------------------------
38  # dump_entity - dump an entity's file info  # dump_entity - dump an entity's file info
# Line 78  sub dump_entity { Line 64  sub dump_entity {
64                  $new .= $suffix;                  $new .= $suffix;
65    
66                  rename $file,"$outdir/$new" || die "move $file -> $outdir/$new: $!";                  rename $file,"$outdir/$new" || die "move $file -> $outdir/$new: $!";
67                  print LOG scalar localtime," $new\n";                  my $prog = $0;
68                    $prog =~ s/^.*\/([^\/])+$/$1/g;
69                    print LOG scalar localtime," $prog $new\n";
70    
71                  # now, call SAP rfc                  # now, call SAP rfc
72    
73                  my $it = $rfc->discover("Z_ZDMM0123_SIGMA_RFC") || die "discover: $!";                  # init SAP rfc
74                    #
75                    my $rfc = new SAP::Rfc(
76                            ASHOST  => $config->{sap}->{ashost},
77                            USER    => $config->{sap}->{user},
78                            PASSWD  => $config->{sap}->{passwd},
79                            LANG    => $config->{sap}->{lang},
80                            CLIENT  => $config->{sap}->{client},
81                            SYSNR   => $config->{sap}->{sysnr},
82                            TRACE   => $config->{sap}->{trace}
83                            ) || die "new: $!";
84    
85                    $rfc->is_connected || die "SAP rfc: not connected";
86    
87                    my $it = $rfc->discover($config->{sap}->{discover}) || die "discover: $!";
88    
89                    foreach my $p ($config->{sap}->{params}) {
90                            foreach my $p_name (keys %{$p}) {
91                                    $it->$p_name($p->{$p_name});
92                            }
93                    }
94    
                 $it->FILEPATH( "ZSIGMA" );  
95                  $it->FILENAME( $new );                  $it->FILENAME( $new );
                 $it->PORT( "ZIDOC" );  
96    
97                  $rfc->callrfc( $it );                  $rfc->callrfc( $it );
98    
99                    $rfc->close();
100          }          }
101      }      }
102  }  }
103    
 $rfc->close();  
104    
105  #------------------------------------------------------------  #------------------------------------------------------------
106  # main  # main
# Line 101  $rfc->close(); Line 108  $rfc->close();
108  sub main {  sub main {
109          my $file;          my $file;
110          my $entity;          my $entity;
111            
112          mkdir $msgdir,0755 || die "can't create $msgdir: $!";          chdir ($mntdir) || die "can't chdir to $mntdir: $!";
113            mkdir ($msgdir,0755) || die `id`."can't create $msgdir: $!";
114          die "problems with creation of directory $msgdir: $!" if (! -w $msgdir);          die "problems with creation of directory $msgdir: $!" if (! -w $msgdir);
115    
116          my $parser = new MIME::Parser;          my $parser = new MIME::Parser;

Legend:
Removed from v.1.3  
changed lines
  Added in v.1.8

  ViewVC Help
Powered by ViewVC 1.1.26