diff options
Diffstat (limited to 'fripost-adduser')
-rwxr-xr-x | fripost-adduser | 33 |
1 files changed, 20 insertions, 13 deletions
diff --git a/fripost-adduser b/fripost-adduser index ba97cdf..db312a2 100755 --- a/fripost-adduser +++ b/fripost-adduser @@ -1,8 +1,9 @@ #!/usr/bin/perl use 5.010_000; -use warnings; use strict; +use warnings; +use utf8; =head1 NAME @@ -10,12 +11,11 @@ fripost-adduser - Add a new mailbox to the system =cut -our $VERSION = '0.02'; - use FindBin qw($Bin); use lib "$Bin/lib"; use Data::Dumper; +use Encode qw(encode); use File::Slurp qw(slurp); use Fripost::Password; use Fripost::Prompt; @@ -51,7 +51,6 @@ my $schema = Fripost::Schema->connect( my $user; { my $username = prompt_email("New username: ", 'is_user'); - my $name = prompt "Full (real) name: "; my $domain = (split /\@/, $username)[1]; my $maildir = "$domain/". (split /\@/, $username)[0] . "/Maildir/"; # trailing slash important my $active = 1; @@ -59,7 +58,6 @@ my $user; $user = { username => $username, - name => $name, domain => $domain, maildir => $maildir, active => $active, @@ -67,7 +65,6 @@ my $user; }; say "User name: $user->{username}"; - say "Real name: $user->{name}"; say "Password: (hidden)"; confirm_or_abort(); @@ -94,8 +91,8 @@ my $tt = Template->new({ }) || die "$Template::ERROR\n"; my $msg = MIME::Lite->new( - From => 'Friposts administratörer <admin@fripost.org>', - Subject => "=?UTF-8?B?" . encode_base64('Välkommen till Fripost!' . "?=", + From => encode('MIME-Q', 'Friposts administratörer') . ' <admin@fripost.org>', + Subject => encode('MIME-Q', 'Välkommen till Fripost!'), Encoding => 'quoted-printable', ); @@ -105,15 +102,15 @@ $msg->attr('content-type.charset' => 'utf-8'); { my ($vars, $data); $vars = {}; + $tt->process('new_user_mail.tt', $vars, \$data) || die $tt->error(), '\n'; - - $msg->replace(To => $user->{username}); $msg->data($data); + $msg->replace(To => $user->{username}); unless ($conf->{pretend}) { - $msg->send() unless $conf->{pretend};; + $msg->send() unless $conf->{pretend}; say "Sent welcome message."; } dsay "-----------------------------------"; @@ -129,11 +126,10 @@ $msg->attr('content-type.charset' => 'utf-8'); $vars = { user => $user->{username}, pass => $user->{password}, - real => $user->{name}, }; + $tt->process('user_info.tt', $vars, \$data) || die $tt->error(), '\n'; - $msg->data($data); dsay "-----------------------------------"; @@ -145,6 +141,7 @@ $msg->attr('content-type.charset' => 'utf-8'); confirm_or_abort("Send email with login information? "); my $to = prompt_email("Where should the email be sent? "); $msg->replace(To => $to); + if (!$conf->{pretend}) { $msg->send; say "Credentials sent."; @@ -154,6 +151,16 @@ $msg->attr('content-type.charset' => 'utf-8'); } } +### Subscribe user to announce-list +{ + confirm_or_abort("Subscribe user to announce mailing list? "); + $msg->replace(From => $user->{username}); + $msg->replace(To => 'announce-subscribe@lists.fripost.org'); + $msg->replace(Subject => ''); + $msg->replace(Data => ''); + $msg->send(); +} + =head1 AUTHOR Stefan Kangas C<< <skangas at skangas.se> >> |