summaryrefslogtreecommitdiff
path: root/bin/sendmail.import
diff options
context:
space:
mode:
Diffstat (limited to 'bin/sendmail.import')
-rw-r--r--bin/sendmail.import178
1 files changed, 0 insertions, 178 deletions
diff --git a/bin/sendmail.import b/bin/sendmail.import
deleted file mode 100644
index ef745fc..0000000
--- a/bin/sendmail.import
+++ /dev/null
@@ -1,178 +0,0 @@
-#!/usr/bin/perl -w
-
-use strict;
-use Term::Query qw(query);
-use Net::SCP qw(iscp);
-use FS::UID qw(adminsuidsetup datasrc);
-use FS::Record qw(qsearch qsearchs);
-##use FS::svc_acct_sm;
-#use FS::svc_domain;
-#use FS::domain_record;
-use FS::svc_acct;
-##use FS::part_svc;
-use FS::svc_forward;
-use FS::svc_domain;
-
-my $user = shift or die &usage;
-adminsuidsetup $user;
-
-#$FS::svc_Common::noexport_hack = 1;
-#$FS::domain_record::noserial_hack = 1;
-
-use vars qw($defaultdomain);
-$defaultdomain = '295.ca';
-
-use vars qw(@svcpart $forward_svcpart);
-@svcpart = qw( 2 4 );
-$forward_svcpart = 7;
-
-use vars qw($spooldir);
-$spooldir = "/usr/local/etc/freeside/export.". datasrc. "/sendmail";
-mkdir($spooldir, 0755) unless -d $spooldir;
-
-print "\n\n", <<END;
-Enter the location and name of your Sendmail aliases file, for example
-"mail.isp.com:/etc/mail/aliases"
-END
-my($aliases)=&getvalue(":");
-
-use vars qw($aliases_machine $aliases_prefix);
-$aliases_machine = (split(/:/, $aliases))[0];
-$aliases_prefix = "$spooldir/$aliases_machine";
-mkdir($aliases_prefix, 0755) unless -d $aliases_prefix;
-
-#iscp("root\@$aliases","$aliases_prefix/aliases.import");
-iscp("ivan\@$aliases","$aliases_prefix/aliases.import");
-
-print "\n\n", <<END;
-Enter the location and name of your Sendmail virtusertable directory, for example
-"mail.isp.com:/etc/mail/virtusertable"
-END
-my($virtusertable)=&getvalue(":");
-
-use vars qw($virtusertable_machine $virtusertable_prefix);
-$virtusertable_machine = (split(/:/, $virtusertable))[0];
-$virtusertable_prefix = "$spooldir/$virtusertable_machine";
-mkdir($virtusertable_prefix, 0755) unless -d $virtusertable_prefix;
-mkdir("$virtusertable_prefix/virtusertable.import", 0755)
- unless -d "$virtusertable_prefix/virtusertable.import";
-
-#iscp("root\@$virtusertable/*","$aliases_prefix/virtusertable.import/");
-iscp("ivan\@$virtusertable/*","$aliases_prefix/virtusertable.import/");
-
-sub getvalue {
- my $prompt = shift;
- $^W=0; # Term::Query isn't -w-safe
- my $return = query $prompt, '';
- $^W=1;
- $return;
-}
-
-print "\n\n";
-
-##
-
-foreach my $file (
- "$aliases_prefix/aliases.import",
- glob("$aliases_prefix/virtusertable.import/*"),
-) {
-
- warn "importing $file\n";
-
- open(FILE,"<$file") or die $!;
- while (<FILE>) {
- next if /^\s*#/ || /^\s*$/; #skip comments & blank lines
-
- unless ( /^([\w\@\.\-]+)[:\s]\s*(.*\S)\s*$/ ) {
- warn "Unparsable line: $_";
- next;
- }
- my($rawusername, $rawdest) = ($1, $2);
-
- my($username, $domain);
- if ( $rawusername =~ /^([\w\-\.\&]*)\@([\w\.\-]+)$/ ) {
- $username = $1;
- $domain = $2;
- } elsif ( $rawusername =~ /\@/ ) {
- die "Unparsable username: $rawusername\n";
- } else {
- $username = $rawusername;
- $domain = $defaultdomain;
- }
-
- #find svc_acct record or set $src
- my($srcsvc, $src) = &svcnum_or_literal($username, $domain);
-
- foreach my $dest ( split(/,/, $rawdest) ) {
-
- my($dusername, $ddomain);
- if ( $dest =~ /^([\w\-\.\&]+)\@([\w\.\-]+)$/ ) {
- $dusername = $1;
- $ddomain = $2;
- } elsif ( $dest =~ /\@/ ) {
- die "Unparsable username: $dest\n";
- } else {
- $dusername = $dest;
- $ddomain = $defaultdomain;
- }
- my($dstsvc, $dst) = &svcnum_or_literal($dusername, $ddomain);
-
- my $svc_forward = new FS::svc_forward ({
- svcpart => $forward_svcpart,
- srcsvc => $srcsvc,
- src => $src,
- dstsvc => $dstsvc,
- dst => $dst,
- });
- my $error = $svc_forward->insert;
- #my $error = $svc_forward->check;
- if ( $error ) {
- die "$rawusername: $rawdest: $error\n";
- }
- }
-
-
- } #next entry
-
-} #next file
-
-##
-
-sub svcnum_or_literal {
- my($username, $domain) = @_;
-
- my $svc_domain = qsearchs('svc_domain', { 'domain' => $domain } );
- my $domsvc = $svc_domain ? $svc_domain->svcnum : '';
-
- my @svc_acct = grep { my $svc_acct = $_;
- grep { $svc_acct->cust_svc->svcpart == $_ } @svcpart
- }
- qsearch('svc_acct', {
- 'username' => $username,
- 'domsvc' => $domsvc,
- });
-
- if ( scalar(@svc_acct) > 1 ) {
- die "multiple sources found for $username\@$domain !\n";
- }
-
- my( $svcnum, $literal ) = ('', '');
- if ( @svc_acct ) {
- my $svc_acct = $svc_acct[0];
- $svcnum = $svc_acct->svcnum;
- } else {
- $literal = "$username\@$domain";
- }
-
- return( $svcnum, $literal );
-
-}
-
-sub usage {
- die "Usage:\n\n sendmail.import user\n";
-}
-
-
-
-
-