summaryrefslogtreecommitdiff
path: root/public/app/extends/Send_mail.php
diff options
context:
space:
mode:
Diffstat (limited to 'public/app/extends/Send_mail.php')
-rw-r--r--public/app/extends/Send_mail.php190
1 files changed, 190 insertions, 0 deletions
diff --git a/public/app/extends/Send_mail.php b/public/app/extends/Send_mail.php
new file mode 100644
index 0000000..fa0d8d3
--- /dev/null
+++ b/public/app/extends/Send_mail.php
@@ -0,0 +1,190 @@
+<?php
+namespace app\extends;
+
+use PHPMailer\PHPMailer\PHPMailer;
+use PHPMailer\PHPMailer\SMTP;
+use PHPMailer\PHPMailer\Exception;
+
+
+class Send_mail
+{
+
+ private static function init_mail()
+ {
+ $mail = new PHPMailer();
+
+ // setup smpt
+ $mail->SMTPDebug = 3;
+ $mail->IsSMTP();
+ $mail->Host = MAIL_HOST;
+ $mail->SMPTAuth = false;
+ $mail->SMTPSecure = MAIL_ENCRYPTION;
+ // $mail->Protocol = 'mail';
+
+ $mail->Mailer = MAIL_MAILER;
+ $mail->Port = MAIL_PORT;
+ $mail->Username = MAIL_USERNAME;
+ $mail->Password = MAIL_PASSWORD;
+
+ return $mail;
+ }
+
+
+ /**
+ *
+ */
+ private static function init_slack()
+ {
+
+ }
+
+
+ /**
+ *
+ * @param $envelope (array): mail from/to and activation code
+ *
+ * TODO:
+ * check for email templating:
+ * + https://stackoverflow.com/questions/2391171/how-to-get-output-from-local-script-in-php
+ * + https://stackoverflow.com/questions/171318/how-do-i-capture-php-output-into-a-variable
+ */
+ public static function send_activation_code($envelope)
+ {
+ $mail = self::init_mail();
+
+ // setup format
+ $mail->CharSet = 'utf-8';
+ $mail->IsHTML(true);
+
+ // setup THE mail
+ // --- -- -- - - -
+ // It's important not to use the submitter's address as the from address as it's forgery,
+ // which will cause your messages to fail SPF checks.
+ // Use an address in your own domain as the from address, put the submitter's address in a reply-to
+ $mail->setFrom(NO_REPLY_EMAIL, MAIL_FROM_NAME);
+ $mail->addAddress($envelope['email'], $envelope['name']);
+ $mail->addReplyTo(REPLY_TO_EMAIL, MAIL_FROM_NAME);
+ $mail->Subject = 'Εγγραφή στο Classroom';
+ $mail->Body = "Χαίρετε,<br>
+ το παρόν αυτοποιημένο email σάς έχει σταλεί γιατί έχει γίνει αίτημα εγγραφής σας στο Classroom.<br>
+ <br>
+ Όνομα επαφής: <b>". $envelope['name'] ."</b><br>
+ Email : <b>". $envelope['email'] ."</b><br>
+ <br>
+ Για να ενεργοποιήσετε την πρόσβασή σας στο site θα πρέπει να παρακαλώ πατήστε στον
+ παρακάτω σύνδεσμο url
+ <a href=\"https://eaadhsy.roptron.gr/account/activate?ticket=". $envelope['code'] ."\">.
+ <br>
+ <br>
+ Μετά την ενεργοποίηση θα έχετε πρόσσβαση στο περιεχόμενο του site.<br>
+ <br>
+ Μην απαντήσετε στο email γιατί δεν υπάρχει φυσική επαφή η οποία να λαμβάνει τυχόν replies.<br>";
+ if (!$mail->send()) {
+ return false;
+ } else {
+ return true;
+ }
+
+ }
+
+
+
+
+}
+
+
+
+
+
+/**
+ *
+ *
+
+Optimization per concept alternative technologies
+--- -- -- - - -
+
+## Session
+File Session
+Database Session
+Redis Session
+Memcached Session
+
+---
+
+## Cache
+File Cache
+Database Cache
+Redis Cache
+Memcashed Cache
+
+---
+
+## Log
+File Log
+Database Log
+Log event to Slack
+Log event to Email
+
+ *
+ *
+ */
+
+/** custom email api
+ *
+ * host : https://api.roptron.gr
+ * apikey : md5(hash)-substring(0,5, md5(service)) 8668d1c4a8f5aba236a8f821d148340f-0c83f
+ * message : serialize([
+ * from[email] => from name
+ * replyTo[email] => reply-to-Name
+ * to => [
+ * email => email-name
+ * secondemail => another email name
+ * ]
+ * type => html
+ * charset => utf8
+ * subject => mail subject
+ * mailBody => html string
+ * ])
+ *
+ */
+
+/** Several custom APIs
+ *
+ * Mailer
+ *
+ * sendpulse
+ * rU8WEmcHsRcEQaH
+ * rU8WEmcHsRcEQaH
+ *
+ * mailjet
+ * piipiis@g
+ * EN6Xg8!99ZTKaYp7
+ *
+ *
+ * sendGrid
+ * piipiis
+ * EN6Xg899ZTKU8WEmcHsR54321
+ *
+ *
+ * time4vps...
+ * https://community.time4vps.com/discussion/75/are-any-ports-blocked-by-time4vps
+ *
+ * test activation code:
+ * ca42d68cfba5fbbafeacc010b8e3a551
+ *
+ *
+ *
+ * MAIL API
+ * --- -- -- - - -
+ * client = ip/mp5(IP) or domain/md5(ref_domain)
+ * token = md5(client + timestamp + rand(0,10000))
+ *
+ * api : auth_content : client : token
+ * --- : --- : --- : ---
+ * mail : ip|domain : md5(*) : md5(...) -> send an email
+ * image : ip|domain : md5(*) : md5(...) -> proccess an image (resize|crop|convert)
+ * slack : ip|domain : md5(*) : md5(...) -> send a slack message to channel
+ * database : ip|domain : md5(*) : md5(...) ->
+ *
+ */
+ \ No newline at end of file