Send Email Function
This commit is contained in:
parent
e0d21e6284
commit
ef15ec0ae2
@ -5,6 +5,12 @@
|
|||||||
* by https://t.me/ibnux
|
* by https://t.me/ibnux
|
||||||
**/
|
**/
|
||||||
|
|
||||||
|
use PHPMailer\PHPMailer\PHPMailer;
|
||||||
|
use PHPMailer\PHPMailer\Exception;
|
||||||
|
use PHPMailer\PHPMailer\SMTP;
|
||||||
|
require $root_path . 'system/autoload/mail/Exception.php';
|
||||||
|
require $root_path . 'system/autoload/mail/PHPMailer.php';
|
||||||
|
require $root_path . 'system/autoload/mail/SMTP.php';
|
||||||
|
|
||||||
class Message
|
class Message
|
||||||
{
|
{
|
||||||
@ -66,6 +72,44 @@ class Message
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static function sendEmail($to, $subject, $body)
|
||||||
|
{
|
||||||
|
global $config;
|
||||||
|
run_hook('send_email'); #HOOK
|
||||||
|
if (empty($config['smtp_host'])) {
|
||||||
|
$attr = "";
|
||||||
|
if (!empty($config['mail_from'])) {
|
||||||
|
$attr .= "From: " . $config['mail_from'] . "\r\n";
|
||||||
|
}
|
||||||
|
if (!empty($config['mail_reply_to'])) {
|
||||||
|
$attr .= "Reply-To: " . $config['mail_reply_to'] . "\r\n";
|
||||||
|
}
|
||||||
|
mail($to, $subject, $body, $attr);
|
||||||
|
} else {
|
||||||
|
$mail = new PHPMailer();
|
||||||
|
$mail->isSMTP();
|
||||||
|
$mail->SMTPDebug = SMTP::DEBUG_SERVER;
|
||||||
|
$mail->Host = $config['smtp_host'];
|
||||||
|
$mail->SMTPAuth = true;
|
||||||
|
$mail->Username = $config['smtp_user'];
|
||||||
|
$mail->Password = $config['smtp_pass'];
|
||||||
|
$mail->SMTPSecure = $config['smtp_ssltls'];
|
||||||
|
$mail->Port = $config['smtp_port'];
|
||||||
|
if (!empty($config['mail_from'])) {
|
||||||
|
$mail->setFrom($config['mail_from']);
|
||||||
|
}
|
||||||
|
if (!empty($config['mail_reply_to'])) {
|
||||||
|
$mail->addReplyTo($config['mail_reply_to']);
|
||||||
|
}
|
||||||
|
$mail->isHTML(false);
|
||||||
|
$mail->addAddress($to);
|
||||||
|
$mail->Subject = $subject;
|
||||||
|
$mail->Body = $body;
|
||||||
|
$mail->send();
|
||||||
|
die();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public static function sendPackageNotification($customer, $package, $price, $message, $via)
|
public static function sendPackageNotification($customer, $package, $price, $message, $via)
|
||||||
{
|
{
|
||||||
global $u;
|
global $u;
|
||||||
@ -73,7 +117,7 @@ class Message
|
|||||||
$msg = str_replace('[[username]]', $customer['username'], $msg);
|
$msg = str_replace('[[username]]', $customer['username'], $msg);
|
||||||
$msg = str_replace('[[package]]', $package, $msg);
|
$msg = str_replace('[[package]]', $package, $msg);
|
||||||
$msg = str_replace('[[price]]', $price, $msg);
|
$msg = str_replace('[[price]]', $price, $msg);
|
||||||
if($u){
|
if ($u) {
|
||||||
$msg = str_replace('[[expired_date]]', Lang::dateAndTimeFormat($u['expiration'], $u['time']), $msg);
|
$msg = str_replace('[[expired_date]]', Lang::dateAndTimeFormat($u['expiration'], $u['time']), $msg);
|
||||||
}
|
}
|
||||||
if (
|
if (
|
||||||
|
40
system/autoload/mail/Exception.php
Normal file
40
system/autoload/mail/Exception.php
Normal file
@ -0,0 +1,40 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
/**
|
||||||
|
* PHPMailer Exception class.
|
||||||
|
* PHP Version 5.5.
|
||||||
|
*
|
||||||
|
* @see https://github.com/PHPMailer/PHPMailer/ The PHPMailer GitHub project
|
||||||
|
*
|
||||||
|
* @author Marcus Bointon (Synchro/coolbru) <phpmailer@synchromedia.co.uk>
|
||||||
|
* @author Jim Jagielski (jimjag) <jimjag@gmail.com>
|
||||||
|
* @author Andy Prevost (codeworxtech) <codeworxtech@users.sourceforge.net>
|
||||||
|
* @author Brent R. Matzelle (original founder)
|
||||||
|
* @copyright 2012 - 2020 Marcus Bointon
|
||||||
|
* @copyright 2010 - 2012 Jim Jagielski
|
||||||
|
* @copyright 2004 - 2009 Andy Prevost
|
||||||
|
* @license http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License
|
||||||
|
* @note This program is distributed in the hope that it will be useful - WITHOUT
|
||||||
|
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||||
|
* FITNESS FOR A PARTICULAR PURPOSE.
|
||||||
|
*/
|
||||||
|
|
||||||
|
namespace PHPMailer\PHPMailer;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* PHPMailer exception handler.
|
||||||
|
*
|
||||||
|
* @author Marcus Bointon <phpmailer@synchromedia.co.uk>
|
||||||
|
*/
|
||||||
|
class Exception extends \Exception
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Prettify error message output.
|
||||||
|
*
|
||||||
|
* @return string
|
||||||
|
*/
|
||||||
|
public function errorMessage()
|
||||||
|
{
|
||||||
|
return '<strong>' . htmlspecialchars($this->getMessage(), ENT_COMPAT | ENT_HTML401) . "</strong><br />\n";
|
||||||
|
}
|
||||||
|
}
|
5252
system/autoload/mail/PHPMailer.php
Normal file
5252
system/autoload/mail/PHPMailer.php
Normal file
File diff suppressed because it is too large
Load Diff
1497
system/autoload/mail/SMTP.php
Normal file
1497
system/autoload/mail/SMTP.php
Normal file
File diff suppressed because it is too large
Load Diff
@ -25,6 +25,10 @@ switch ($action) {
|
|||||||
$result = Message::sendSMS(_get('testSms'), 'PHPNuxBill Test SMS');
|
$result = Message::sendSMS(_get('testSms'), 'PHPNuxBill Test SMS');
|
||||||
r2(U . "settings/app", 's', 'Test SMS has been send<br>Result: ' . $result);
|
r2(U . "settings/app", 's', 'Test SMS has been send<br>Result: ' . $result);
|
||||||
}
|
}
|
||||||
|
if (!empty(_get('testEmail'))) {
|
||||||
|
Message::sendEmail(_get('testEmail'), 'PHPNuxBill Test Email', 'PHPNuxBill Test Email Body');
|
||||||
|
r2(U . "settings/app", 's', 'Test Email has been send');
|
||||||
|
}
|
||||||
if (!empty(_get('testTg'))) {
|
if (!empty(_get('testTg'))) {
|
||||||
$result = Message::sendTelegram('PHPNuxBill Test Telegram');
|
$result = Message::sendTelegram('PHPNuxBill Test Telegram');
|
||||||
r2(U . "settings/app", 's', 'Test Telegram has been send<br>Result: ' . $result);
|
r2(U . "settings/app", 's', 'Test Telegram has been send<br>Result: ' . $result);
|
||||||
|
@ -535,5 +535,6 @@
|
|||||||
"Use_at_least_5_secs_if_you_are_sending_to_all_customers_to_avoid_being_banned_by_your_message_provider": "Use at least 5 secs if you are sending to all customers to avoid being banned by your message provider",
|
"Use_at_least_5_secs_if_you_are_sending_to_all_customers_to_avoid_being_banned_by_your_message_provider": "Use at least 5 secs if you are sending to all customers to avoid being banned by your message provider",
|
||||||
"Testing__if_checked_no_real_message_is_sent_": "Testing [if checked no real message is sent]",
|
"Testing__if_checked_no_real_message_is_sent_": "Testing [if checked no real message is sent]",
|
||||||
"All_fields_are_required": "All fields are required",
|
"All_fields_are_required": "All fields are required",
|
||||||
"Personal": "Personal"
|
"Personal": "Personal",
|
||||||
|
"Email_Notification": "Email Notification"
|
||||||
}
|
}
|
@ -340,6 +340,68 @@
|
|||||||
<small id="emailHelp" class="form-text text-muted">You can use WhatsApp in here too. <a
|
<small id="emailHelp" class="form-text text-muted">You can use WhatsApp in here too. <a
|
||||||
href="https://wa.nux.my.id/login" target="_blank">Free Server</a></small>
|
href="https://wa.nux.my.id/login" target="_blank">Free Server</a></small>
|
||||||
</div>
|
</div>
|
||||||
|
<div class="panel-heading">
|
||||||
|
<div class="btn-group pull-right">
|
||||||
|
<a class="btn btn-success btn-xs" style="color: black;" href="javascript:testEmail()">Test Email</a>
|
||||||
|
<button class="btn btn-primary btn-xs" title="save" type="submit"><span
|
||||||
|
class="glyphicon glyphicon-floppy-disk" aria-hidden="true"></span></button>
|
||||||
|
</div>
|
||||||
|
{Lang::T('Email Notification')}
|
||||||
|
</div>
|
||||||
|
<div class="panel-body">
|
||||||
|
<div class="form-group">
|
||||||
|
<label class="col-md-2 control-label">SMTP Host : port</label>
|
||||||
|
<div class="col-md-4">
|
||||||
|
<input type="text" class="form-control" id="smtp_host" name="smtp_host" value="{$_c['smtp_host']}"
|
||||||
|
placeholder="smtp.host.tld">
|
||||||
|
</div>
|
||||||
|
<div class="col-md-2">
|
||||||
|
<input type="number" class="form-control" id="smtp_port" name="smtp_port" value="{$_c['smtp_port']}"
|
||||||
|
placeholder="465 587 port">
|
||||||
|
</div>
|
||||||
|
<p class="help-block col-md-4">Empty this to use internal mail() PHP</p>
|
||||||
|
</div>
|
||||||
|
<div class="form-group">
|
||||||
|
<label class="col-md-2 control-label">SMTP username</label>
|
||||||
|
<div class="col-md-6">
|
||||||
|
<input type="text" class="form-control" id="smtp_user" name="smtp_user" value="{$_c['smtp_user']}"
|
||||||
|
placeholder="user@host.tld">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="form-group">
|
||||||
|
<label class="col-md-2 control-label">SMTP Password</label>
|
||||||
|
<div class="col-md-6">
|
||||||
|
<input type="password" class="form-control" id="smtp_pass" name="smtp_pass" value="{$_c['smtp_pass']}"
|
||||||
|
onmouseleave="this.type = 'password'" onmouseenter="this.type = 'text'">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="form-group">
|
||||||
|
<label class="col-md-2 control-label">SMTP Security</label>
|
||||||
|
<div class="col-md-6">
|
||||||
|
<select name="smtp_ssltls" id="smtp_ssltls" class="form-control">
|
||||||
|
<option value="" {if $_c['smtp_ssltls']=='' }selected="selected" {/if}>Not Secure</option>
|
||||||
|
<option value="ssl" {if $_c['smtp_ssltls']=='ssl' }selected="selected" {/if}>SSL</option>
|
||||||
|
<option value="tls" {if $_c['smtp_ssltls']=='tls' }selected="selected" {/if}>TLS</option>
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
<p class="help-block col-md-4">UPPERCASE lowercase RaNdoM</p>
|
||||||
|
</div>
|
||||||
|
<div class="form-group">
|
||||||
|
<label class="col-md-2 control-label">Mail From</label>
|
||||||
|
<div class="col-md-6">
|
||||||
|
<input type="text" class="form-control" id="mail_from" name="mail_from" value="{$_c['mail_from']}"
|
||||||
|
placeholder="noreply@host.tld">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="form-group">
|
||||||
|
<label class="col-md-2 control-label">Mail Reply To</label>
|
||||||
|
<div class="col-md-6">
|
||||||
|
<input type="text" class="form-control" id="mail_reply_to" name="mail_reply_to" value="{$_c['mail_reply_to']}"
|
||||||
|
placeholder="support@host.tld">
|
||||||
|
</div>
|
||||||
|
<p class="help-block col-md-4">Customer will reply email to this address, empty if you want to use From Address</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
<div class="panel-heading">
|
<div class="panel-heading">
|
||||||
<div class="btn-group pull-right">
|
<div class="btn-group pull-right">
|
||||||
<button class="btn btn-primary btn-xs" title="save" type="submit"><span
|
<button class="btn btn-primary btn-xs" title="save" type="submit"><span
|
||||||
@ -561,6 +623,14 @@ add dst-host=*.{$_domain}</pre>
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
function testEmail() {
|
||||||
|
var target = prompt("Email\nSave First before Test", "");
|
||||||
|
if (target != null) {
|
||||||
|
window.location.href = '{$_url}settings/app&testEmail=' + target;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
function testTg() {
|
function testTg() {
|
||||||
window.location.href = '{$_url}settings/app&testTg=test';
|
window.location.href = '{$_url}settings/app&testTg=test';
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user