-
Notifications
You must be signed in to change notification settings - Fork 2
/
hackathon-sms.php
151 lines (117 loc) · 5 KB
/
hackathon-sms.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
<?php
/***
Messaging integration
Tobias Nteireho
The Center for Computer Assisted Legal Instruction
***/
$config = parse_ini_file('/vol/data/sites/private/config.ini');
// Update the path below to your autoload.php,
// see https://getcomposer.org/doc/01-basic-usage.md
require_once $config['lib_dir'] . '/twilio-php-master/Twilio/autoload.php';
require_once $config['lib_dir'] . '/PHPMailer-master/src/Exception.php';
require_once $config['lib_dir'] . '/PHPMailer-master/src/PHPMailer.php';
require_once $config['lib_dir'] . '/PHPMailer-master/src/SMTP.php';
require_once __DIR__ . '/ics.php';
use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\Exception;
use Twilio\Rest\Client;
// Find your Account Sid and Auth Token at twilio.com/console
// DANGER! This is insecure. See http://twil.io/secure
$sid = $config['twilio_sid']; //"ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX";
$token = $config['twilio_token']; //"your_auth_token";
$twilio_from = $config['twilio_from']; //"your_auth_token";
$twilio = new Client($sid, $token);
/*
PO Frequency MC
Daily
Weekly
Every Other Week
Date next visit DA
Phone TE
Email TE
*/
//Load data from answerset
$AnswerKey = isset($_POST['AnswerKey']) ? $_POST['AnswerKey'] : null ;
// Get user names, submit date
//$results = $xslt->transformToDoc($xmlobject);
//$s = simplexml_load_string($AnswerKey);
$doc = new DOMDocument();
$doc->loadXML($AnswerKey);
$xpath = new DOMXPath($doc);
$firstname = $xpath->query("//Answer[@name='Client first name TE']/TextValue")->item(0)->nodeValue;
$lastname = $xpath->query("//Answer[@name='Client last name TE']/TextValue")->item(0)->nodeValue;
$client_phone = $xpath->query("//Answer[@name='Phone TE']/TextValue")->item(0)->nodeValue;
//print(strlen($client_phone));
$client_email= $xpath->query("//Answer[@name='Email TE']/TextValue")->item(0)->nodeValue;
$next_visit_date = $xpath->query("//Answer[@name='Date next visit DA']/DateValue")->item(0)->nodeValue;
$visit_frequency = $xpath->query("//Answer[@name='PO Frequency MC']/MCValue/SelValue")->item(0)->nodeValue;
//Calculate date
date_default_timezone_set('America/New_York');
$next_visit = new DateTime(str_replace ('/', '-', $next_visit_date));
$today = new DateTime(date('Y-m-d H:i:s'));
$interval = $today->diff($next_visit);
//echo $today->format('Y-m-d') . ' ' . $next_visit_date . ' ' . $next_visit->format('Y-m-d') . ' ' . $interval->h;
$meeting_day = $next_visit->format("D, M d Y");
/*
if ($interval->d == 1){
$meeting_day = "tomorrow";
} else if ($interval->d == 0){
$meeting_day = "today";
}
*/
//Send text Message
$sms_body = $firstname .
', this is a reminder that you have a meeting with ' .
'your parole officer '. $meeting_day . '.';
if (strlen($client_phone)){// && (($interval->d <= 1))){
$message = $twilio->messages
->create("+1" . $client_phone,
array(
"body" => $sms_body,
"from" => $twilio_from
)
);
}
//Make calendar
$mail_body = $firstname .
', this is a reminder that you have a meeting with ' .
'your parole officer '. $meeting_day . '.';
//Send email
if (strlen($client_email)){
// Instantiation and passing `true` enables exceptions
$mail = new PHPMailer(true);
try {
//Server settings
$mail->SMTPDebug = 2; // Enable verbose debug output
$mail->isSMTP(); // Set mailer to use SMTP
$mail->Host = 'localhost'; // Specify main and backup SMTP servers
//$mail->SMTPAuth = true; // Enable SMTP authentication
//$mail->Username = $config['smtp_user']; // SMTP username
//$mail->Password = $config['smtp_pass']; // SMTP password
//$mail->SMTPSecure = 'tls'; // Enable TLS encryption, `ssl` also accepted
$mail->Port = 25; // TCP port to connect to
//Recipients
$mail->setFrom('[email protected]', 'a2jauthor hackathon');
$mail->addAddress('[email protected]', 'Tobias'); // Add a recipient
// Attachments
//$mail->addAttachment('/var/tmp/file.tar.gz'); // Add attachments
// Content
$mail->isHTML(true); // Set email format to HTML
$mail->Subject = 'Parole Officer Meeting Reminder';
$mail->Body = $mail_body;
$mail->AltBody = $mail_body;
//$mail->send();
echo 'Message has been sent';
} catch (Exception $e) {
echo "Message could not be sent. Mailer Error: {$mail->ErrorInfo}";
}
$to = $client_email;
$subject = 'Parole Meeting Reminder';
$message = $mail_body;
$headers = 'From: [email protected]' . "\r\n" .
'Reply-To: [email protected]' . "\r\n" .
'X-Mailer: PHP/' . phpversion();
mail($to, $subject, $message, $headers);
}
echo "<br>Thank you for using Re-entry Navigator!";
//print($message->sid);