# HG changeset patch # User Heiko Schlittermann (JUMPER) # Date 1309793173 -7200 # Node ID c89c297e5d532b086057f7c8222b7b7da5a50aca # Parent 641140d445cafa5543616a82a8e3cf794973aee5 mail is now template based diff -r 641140d445ca -r c89c297e5d53 .perltidyrc --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/.perltidyrc Mon Jul 04 17:26:13 2011 +0200 @@ -0,0 +1,2 @@ +--paren-tightness=2 +--square-bracket-tightness=2 diff -r 641140d445ca -r c89c297e5d53 index.cgi --- a/index.cgi Mon Jul 04 16:27:02 2011 +0200 +++ b/index.cgi Mon Jul 04 17:26:13 2011 +0200 @@ -18,17 +18,17 @@ sub insert(\%); sub confirm($$); -sub slurp($); +sub read_conf($); delete @ENV{grep /PATH$/ => keys %ENV}; $ENV{PATH} = "/usr/bin:/usr/sbin:/bin:/sbin"; my $DSN = "DBI:SQLite:var/db.sqlite3"; -my $SECRET = slurp "conf/secret"; chomp($SECRET); -my $SELF = slurp "conf/self"; chomp($SELF); -my $SUBJECT = slurp "conf/subject"; chomp($SUBJECT); +my $SECRET = read_conf "conf/secret"; chomp($SECRET); +my $SELF = read_conf "conf/self"; chomp($SELF); my $EXPIRATION = 60; # the link is valid for XX minutes only +my $SENDMAIL = "/usr/sbin/sendmail -t"; my %FIELDS = ( MAN => [qw[givenname surname mail]], OPT => [qw[tel]] @@ -37,9 +37,6 @@ my %ttconfig = ( INCLUDE_PATH => "templates", DEBUG => 1, - VARIABLES => { - MAILTO => "hs+retter\@schlittermann.de" - }, ); my $DBH = DBI->connect($DSN, undef, undef, {RaiseError=>1}); @@ -75,14 +72,15 @@ $xxx =~ s/\//_/g; # send mail - sendmail(To => scalar(param("mail")), - From => "hs+retter\@schlittermann.de", - Sender => "hs\@schlittermann.de", - Subject => "$SUBJECT Link zur Online-Anmeldung", - Message => "Bitte benutze den folgenden Link, um zum Anmeldeformular zu gelangen:\n" - . "$SELF/$xxx.tmp\n" - . "\n-- \nHeiko Schlittermann\n"); - + open(my $sendmail => "|$SENDMAIL") + or die "Can't open sendmail: $!\n"; + + $tt->process("mail.invitation.tpl", { + to => scalar(param("mail")), + url => "$SELF/$xxx.tmp"}, $sendmail) + or die $tt->error(); + close($sendmail); + $sent = param("mail"); } } @@ -121,6 +119,14 @@ my $confirmed = param("confirm") eq "yes"; my %data = confirm($uuid => $confirmed); + open(my $sendmail, "|$SENDMAIL") or die "Can't open $SENDMAIL: $!\n"; + $tt->process("mail.confirmed.tpl", { + to => $data{mail}, + confirmed => $confirmed, + }, $sendmail) + or die $tt->error(); + close($sendmail); + $tt->process("confirm.tpl", { confirmed => $confirmed, error => delete $data{error}, @@ -171,24 +177,21 @@ if (!%warn) { my %r = insert(%value); - sendmail(To => $value{mail}, - From => "hs\@schlittermann.de", - "Content-Type" => "text/plain; charset=\"UTF-8\"", - Subject => "$SUBJECT Bitte die Anmeldung bestaetigen.", - Message => <<_EOF); -Bitte bestaetige Deine Anmeldung. Dazu mußt Du folgenden Link in Deinem -Browser oeffnen: + open(my $sendmail => "|$SENDMAIL") + or die "Can't open $SENDMAIL: $!\n"; -$SELF/$r{uuid}.user?confirm=yes + $tt->process("mail.confirm.tpl", { + to => $value{mail}, + url => { + yes => "$SELF/$r{uuid}.user?confirm=yes", + no => "$SELF/$r{uuid}.user?confirm=no", + } + }, $sendmail) + or die $tt->error(); -Wenn alles nur ein Irrtum war, dann kannst Du Deine Daten wieder -AUSTRAGEN und wir vergessen Deine Anmeldung. Hier ist der Link zum -AUSTRAGEN: + close($sendmail); -$SELF/$r{uuid}.user?confirm=no - -_EOF $tt->process("form.ack.tpl", { value => \%value, timestamp => $r{timestamp}, @@ -265,31 +268,10 @@ $DBH->commit; - if ($confirmed) { - sendmail( - To => $data{mail}, - From => "hs+retter\@schlittermann.de", - Subject => "$SUBJECT Bestaetigung der Anmeldung", - Message => <<_EOF); -Du bist erfolgreich angemeldet. Fuer weitere Fragen kontaktiere bitte -hs+retter\@schlittermann.de. -_EOF - } - else { - sendmail( - To => $data{mail}, - From => "hs+retter\@schlittermann.de", - Subject => "$SUBJECT Bestaetigung der NICHT-Anmeldung", - Message => <<_EOF); -Wir vergessen Deine Anmeldung. Fuer weitere Fragen kontaktiere bitte -hs+retter\@schlittermann.de. -_EOF - } - return %data; } -sub slurp($) { +sub read_conf($) { open(my $_, $_[0]) or die "Can't open $_[0]: $!\n"; local $/ = undef; s/^#.*//mg; diff -r 641140d445ca -r c89c297e5d53 templates/mail.confirm.tpl --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/templates/mail.confirm.tpl Mon Jul 04 17:26:13 2011 +0200 @@ -0,0 +1,17 @@ +From: hs+retter@schlittermann.de +To: [%to%] +Subject: [Retter packen] Bitte bestaetige Deine Anmeldung +[%INCLUDE "mail.head"-%] + +Bitte bestätige Deine Anmeldung. Dazu mußt Du folgenden Link in Deinem +Browser öffnen + +[%url.yes%] + +Wenn alles nur ein Irrtum war, dann kannst Du Deine Daten wieder +AUSTRAGEN und wir vergessen Deine Anmeldung. Hier ist der Link zum +AUSTRAGEN: + +[%url.no%] + +[%INCLUDE "mail.foot"%] diff -r 641140d445ca -r c89c297e5d53 templates/mail.confirmed.tpl --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/templates/mail.confirmed.tpl Mon Jul 04 17:26:13 2011 +0200 @@ -0,0 +1,16 @@ +From: hs+retter@schlittermann.de +To: [%to%] +Subject: [Retter packen] Bestaetigung Deiner Anmeldung +[%INCLUDE "mail.head"-%] + +[%IF confirmed-%] +Du bist jetzt erfolgreich für den Retter-Packkurs angemeldet. Bei +weiteren Fragen kontaktiere uns bitte per Mail oder auch telefonisch +unter 0172 7909055. + +Bitte vergiß nicht, den Betrag von 50€ zu überweisen. +[%ELSE%] +Du bist *nicht* zum Retterpackkurs angemeldet. Alle Deine uns bekannten +Daten wurden wieder gelöscht. +[%END%] +[%INCLUDE "mail.foot"%] diff -r 641140d445ca -r c89c297e5d53 templates/mail.foot --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/templates/mail.foot Mon Jul 04 17:26:13 2011 +0200 @@ -0,0 +1,2 @@ +-- +Heiko Schlittermann (+49.172.7909055) diff -r 641140d445ca -r c89c297e5d53 templates/mail.head --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/templates/mail.head Mon Jul 04 17:26:13 2011 +0200 @@ -0,0 +1,1 @@ +Content-Type: text/plain; charset=UTF-8 diff -r 641140d445ca -r c89c297e5d53 templates/mail.invitation.tpl --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/templates/mail.invitation.tpl Mon Jul 04 17:26:13 2011 +0200 @@ -0,0 +1,10 @@ +From: hs+retter@schlittermann.de +To: [%to%] +Subject: [Retter packen] Link zur Online-Anmeldung +[%INCLUDE "mail.head"-%] + +Bitte benutze folgende URL, um Dich für den Kurs zum Retter-Packen anzumelden: + +[%url%] + +[%INCLUDE "mail.foot"%]