Subversion Repositories PEEPS

Rev

Rev 2 | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 2 Rev 19
Line 2... Line 2...
2
 
2
 
3
use strict;
3
use strict;
4
use Exporter 'import';
4
use Exporter 'import';
5
use Net::SMTPS;
5
use Net::SMTPS;
-
 
6
use Email::Simple;
-
 
7
use WebDB;
-
 
8
use HTML::Tiny;
6
use Email::Simple;
9
 
Line 7... Line 10...
7
#use Email::MessageID;
10
#use Email::MessageID;
Line 8... Line 11...
8
 
11
 
9
our @EXPORT = qw( EmailUser );
12
our @EXPORT = qw( EmailUser EmailMultipleUsers emailAffiliationRequest emailAffiliationAdded emailAffiliationRemoved emailNewLeagueRole );
10
 
13
 
11
my $server   = "smtp.gmail.com";
14
my $server   = "smtp.gmail.com";
Line -... Line 15...
-
 
15
my $port     = 587;
-
 
16
my $user     = 'peeps@wftda.com';
12
my $port     = 587;
17
my $password = 'pmrpegrigryhavpe';
Line 13... Line 18...
13
my $user     = 'peeps@wftda.com';
18
 
14
my $password = 'pmrpegrigryhavpe';
19
my $h = HTML::Tiny->new( mode => 'html' );
15
 
20
 
16
#warn "loaded PEEPSMailer...";
21
#warn "loaded PEEPSMailer...";
Line 17... Line 22...
17
 
22
 
Line 18... Line 23...
18
sub EmailUser {
23
sub EmailUser {
19
	my $email = shift;
-
 
20
	my $subject = shift;
-
 
21
	my $body = shift;
-
 
22
	
24
	my $email = shift;
23
	my $dev = $ENV{SERVER_NAME} eq "peeps.wftda.com" ? "" : '[DEV] ';
25
	my $subject = shift;
Line 24... Line 26...
24
  
26
	my $body = shift;
-
 
27
	
-
 
28
	my $dev = $ENV{SERVER_NAME} eq "peeps.wftda.com" ? "" : '[DEV] ';
-
 
29
  
-
 
30
  if ($body !~ /^<p>/i) {
-
 
31
    $body = $h->p (split "\n", $body);
-
 
32
  }
-
 
33
  
-
 
34
#warn "DEBUG: Emailing $email...";
-
 
35
  
-
 
36
  IO::Socket::SSL::set_client_defaults(
-
 
37
    SSL_verifycn_name => 'smtp.gmail.com',
-
 
38
  );
-
 
39
  
-
 
40
  my $smtp = Net::SMTPS->new(
-
 
41
    $server,
-
 
42
    Hello => 'gmail.com',
-
 
43
    Port => $port,
-
 
44
    doSSL => 'starttls',
-
 
45
    Timeout => 15,
-
 
46
    Debug => 0
-
 
47
  );
-
 
48
  die "Could not connect to SMTP server!" unless $smtp;
-
 
49
  
-
 
50
	my $msg = Email::Simple->create(
-
 
51
	  header => [
-
 
52
	    To             => $email,
-
 
53
#	    Bcc            => $user,
-
 
54
	    From           => $user,
-
 
55
	    Subject        => $dev.$subject,
-
 
56
#	    'Message-Id'   => Email::MessageID->new->in_brackets,
-
 
57
	    'Content-type' => 'text/html',
-
 
58
    ],
-
 
59
	  body => $body,
-
 
60
	);
-
 
61
 
-
 
62
  $smtp->auth ($user, $password);
Line -... Line 63...
-
 
63
  $smtp->mail ($user);
-
 
64
  $smtp->to ($email);
-
 
65
#  $smtp->bcc ($user);
25
  if ($body !~ /^<p>/i) {
66
  $smtp->data ();
-
 
67
  $smtp->datasend ($msg->as_string);
26
    use HTML::Tiny;
68
  $smtp->quit;
-
 
69
	
-
 
70
}
27
    my $h = HTML::Tiny->new( mode => 'html' );
71
 
28
 
72
 
29
    $body = $h->p (split "\n", $body);
73
sub EmailMultipleUsers {
30
  }
74
  my $parameters = shift;
31
  
75
	my $email = join ",", @{$parameters->{to}};
-
 
76
	my $cc    = join ",", @{$parameters->{cc}};
-
 
77
	my $subject = $parameters->{subject};
-
 
78
	my $body = $parameters->{body};
32
#warn "DEBUG: Emailing $email...";
79
	
33
 
80
	my $dev = $ENV{SERVER_NAME} eq "peeps.wftda.com" ? "" : '[DEV] ';
34
## the rollercon mail server's cert doesn't match it's name. (the first block ignores any mismatching name)
81
  
Line 35... Line 82...
35
#  IO::Socket::SSL::set_defaults (
82
  if ($body !~ /^<p>/i) {
Line 53... Line 100...
53
  die "Could not connect to SMTP server!" unless $smtp;
100
  die "Could not connect to SMTP server!" unless $smtp;
Line 54... Line 101...
54
  
101
  
55
	my $msg = Email::Simple->create(
102
	my $msg = Email::Simple->create(
56
	  header => [
103
	  header => [
-
 
104
	    To             => $email,
57
	    To             => $email,
105
	    Cc             => $cc,
58
#	    Bcc            => $user,
106
#	    Bcc            => $user,
59
	    From           => $user,
107
	    From           => $user,
60
	    Subject        => $dev.$subject,
108
	    Subject        => $dev.$subject,
61
#	    'Message-Id'   => Email::MessageID->new->in_brackets,
109
#	    'Message-Id'   => Email::MessageID->new->in_brackets,
Line 65... Line 113...
65
	);
113
	);
Line 66... Line 114...
66
 
114
 
67
  $smtp->auth ($user, $password);
115
  $smtp->auth ($user, $password);
68
  $smtp->mail ($user);
116
  $smtp->mail ($user);
-
 
117
  $smtp->to ($email);
69
  $smtp->to ($email);
118
  $smtp->cc ($cc);
70
#  $smtp->bcc ($user);
119
#  $smtp->bcc ($user);
71
  $smtp->data ();
120
  $smtp->data ();
72
  $smtp->datasend ($msg->as_string);
121
  $smtp->datasend ($msg->as_string);
Line 73... Line 122...
73
  $smtp->quit;
122
  $smtp->quit;
Line -... Line 123...
-
 
123
	
-
 
124
}
-
 
125
 
-
 
126
 
-
 
127
 
-
 
128
sub emailAffiliationRequest {
-
 
129
  my $newpersonid = shift // return;
-
 
130
  my $leagueid = shift // return;
-
 
131
  
-
 
132
  my $newb = PEEPS::getUser ($newpersonid);
-
 
133
  my $dbh = PEEPS::getRCDBH ();
-
 
134
  my @leagueAdmins = map { @{$_} } @{ $dbh->selectall_arrayref ("select email from role join person on role.person_id = person.id where role.member_org_id = ? and role.role = ?", undef, $leagueid, "League Admin") };
-
 
135
  
-
 
136
  my $leagueName = PEEPS::getLeagueName ($leagueid);
-
 
137
  
-
 
138
  my $subject = $leagueName." - New Affiliation Request";
-
 
139
  my $body = $h->p (
-
 
140
                      $h->img ({ alt => "", src => "https://peeps.gadell.org/images/wftdapeeps-powerby-wftdainsurance-2.svg", style => "width: 400px; height: 75px;"}),
-
 
141
                      "Greetings,",
-
 
142
                      "You have a new League Affiliation Request for $leagueName:".$h->br,
-
 
143
                      "Derby Name: ".$newb->{derby_name}.$h->br.
-
 
144
                      "Civil Name: ".join " ", $newb->{name_first}, $newb->{name_last}.$h->br.
-
 
145
                      "PEEPS ID: ".$newb->{id}.$h->br.$h->br,
-
 
146
                      "Log into ".$h->a ({href=>CGI::url ()}, "WFTDA PEEPS")." to accept or reject the affiliation request.".$h->br.$h->br,
-
 
147
                      "-WFTDA PEEPS",
-
 
148
                      "NOTE: THIS IS A DEVELOPMENT SYSTEM, PLEASE IGNORE!"
-
 
149
                   );
-
 
150
                   
-
 
151
  PEEPSMailer::EmailMultipleUsers ({ to => \@leagueAdmins, cc => [$newb->{email}], subject=>$subject, body=>$body });
-
 
152
}
-
 
153
 
-
 
154
sub emailAffiliationAdded {
-
 
155
  my $newpersonid = shift // return;
-
 
156
  my $leagueid = shift // return;
-
 
157
  
-
 
158
  my $newb = PEEPS::getUser ($newpersonid);
-
 
159
  my $dbh = PEEPS::getRCDBH ();
-
 
160
  my @leagueAdmins = map { @{$_} } @{ $dbh->selectall_arrayref ("select email from role join person on role.person_id = person.id where role.member_org_id = ? and role.role = ?", undef, $leagueid, "League Admin") };
-
 
161
  my ($role) = $dbh->selectrow_array ("select role from role where person_id = ? and member_org_id = ?", undef, $newpersonid, $leagueid);
-
 
162
  
-
 
163
  my $leagueName = PEEPS::getLeagueName ($leagueid);
-
 
164
  
-
 
165
  my $subject = $leagueName." - Affiliation Confirmed";
-
 
166
  my $body = $h->p (
-
 
167
                      $h->img ({ alt => "", src => "https://peeps.gadell.org/images/wftdapeeps-powerby-wftdainsurance-2.svg", style => "width: 400px; height: 75px;"}),
-
 
168
                      "Greetings,",
-
 
169
                      "League Affiliation for $leagueName has been confirmed:".$h->br,
-
 
170
                      "Derby Name: ".$newb->{derby_name}.$h->br.
-
 
171
                      "Civil Name: ".join " ", $newb->{name_first}, $newb->{name_last}.$h->br.
-
 
172
                      "PEEPS ID: ".$newb->{id}.$h->br,
-
 
173
                      "Role: ".$role.$h->br.$h->br,
-
 
174
                      "No further action is necessary.".$h->br.$h->br,
-
 
175
                      "-WFTDA PEEPS",
-
 
176
                      "NOTE: THIS IS A DEVELOPMENT SYSTEM, PLEASE IGNORE!"
-
 
177
                   );
-
 
178
                   
-
 
179
  PEEPSMailer::EmailMultipleUsers ({ to => \@leagueAdmins, cc => [$newb->{email}], subject=>$subject, body=>$body });
-
 
180
}
-
 
181
 
-
 
182
sub emailNewLeagueRole {
-
 
183
  my $newpersonid = shift // return;
-
 
184
  my $leagueid = shift // return;
-
 
185
  my $newrole = shift // return;
-
 
186
  
-
 
187
  my $newb = PEEPS::getUser ($newpersonid);
-
 
188
  my $dbh = PEEPS::getRCDBH ();
-
 
189
  my @leagueAdmins = map { @{$_} } @{ $dbh->selectall_arrayref ("select email from role join person on role.person_id = person.id where role.member_org_id = ? and role.role = ?", undef, $leagueid, "League Admin") };
-
 
190
  
-
 
191
  my $leagueName = PEEPS::getLeagueName ($leagueid);
-
 
192
  
-
 
193
  my $subject = $leagueName." - New ".$newrole;
-
 
194
  my $body = $h->p (
-
 
195
                      $h->img ({ alt => "", src => "https://peeps.gadell.org/images/wftdapeeps-powerby-wftdainsurance-2.svg", style => "width: 400px; height: 75px;"}),
-
 
196
                      "Greetings,",
-
 
197
                      "A new role has been added for $leagueName:".$h->br,
-
 
198
                      "Derby Name: ".$newb->{derby_name}.$h->br.
-
 
199
                      "Civil Name: ".join " ", $newb->{name_first}, $newb->{name_last}.$h->br.
-
 
200
                      "PEEPS ID: ".$newb->{id}.$h->br,
-
 
201
                      "Role: ".$newrole.$h->br.$h->br,
-
 
202
                      "No further action is necessary.".$h->br.$h->br,
-
 
203
                      "-WFTDA PEEPS",
-
 
204
                      "NOTE: THIS IS A DEVELOPMENT SYSTEM, PLEASE IGNORE!"
-
 
205
                   );
-
 
206
                   
-
 
207
  PEEPSMailer::EmailMultipleUsers ({ to => \@leagueAdmins, cc => [$newb->{email}], subject=>$subject, body=>$body });
-
 
208
}
-
 
209
 
-
 
210
sub emailAffiliationRemoved {
-
 
211
  my $personid = shift // return;
-
 
212
  my $leagueid = shift // return;
-
 
213
  
-
 
214
  my $newb = PEEPS::getUser ($personid);
-
 
215
  my $dbh = PEEPS::getRCDBH ();
-
 
216
  my @leagueAdmins = map { @{$_} } @{ $dbh->selectall_arrayref ("select email from role join person on role.person_id = person.id where role.member_org_id = ? and role.role = ?", undef, $leagueid, "League Admin") };
-
 
217
  
-
 
218
  my $leagueName = PEEPS::getLeagueName ($leagueid);
-
 
219
  
-
 
220
  my $subject = $leagueName." - Affiliation Removed";
-
 
221
  my $body = $h->p (
-
 
222
                      $h->img ({ alt => "", src => "https://peeps.gadell.org/images/wftdapeeps-powerby-wftdainsurance-2.svg", style => "width: 400px; height: 75px;"}),
-
 
223
                      "Greetings,",
-
 
224
                      "League Affiliation has been removed from $leagueName:".$h->br,
-
 
225
                      "Derby Name: ".$newb->{derby_name}.$h->br.
-
 
226
                      "Civil Name: ".join " ", $newb->{name_first}, $newb->{name_last}.$h->br.
-
 
227
                      "PEEPS ID: ".$newb->{id}.$h->br.$h->br,
-
 
228
                      "No further action is necessary.".$h->br.$h->br,
-
 
229
                      "-WFTDA PEEPS",
-
 
230
                      "NOTE: THIS IS A DEVELOPMENT SYSTEM, PLEASE IGNORE!"
-
 
231
                   );
-
 
232
  
74
	
233
  PEEPSMailer::EmailMultipleUsers ({ to => \@leagueAdmins, cc => [$newb->{email}], subject=>$subject, body=>$body });