diff --git a/app/email_queue/email_test.php b/app/email_queue/email_test.php new file mode 100644 index 0000000000..7c886e2819 --- /dev/null +++ b/app/email_queue/email_test.php @@ -0,0 +1,131 @@ + + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +//set the include path + $conf = glob("{/usr/local/etc,/etc}/fusionpbx/config.conf", GLOB_BRACE); + set_include_path(parse_ini_file($conf[0])['document.root']); + +//includes files + require_once "resources/require.php"; + require_once "resources/check_auth.php"; + +//check permissions + if (!permission_exists('email_queue_view')) { + echo "access denied"; + exit; + } + +//add multi-lingual support + $language = new text; + $text = $language->get(); + +//prepare the email + $email_recipient = !empty($_POST['to']) && valid_email($_POST['to']) ? strtolower($_POST['to']) : null; + + $email_body = "Test Message

\n"; + $email_body .= "This message is a test of the SMTP settings configured within your PBX.
\n"; + $email_body .= "If you received this message, your current SMTP settings are valid.

\n"; + + $email_from_address = $_SESSION['email']['smtp_from']['text']; + $email_from_name = $_SESSION['email']['smtp_from_name']['text']; + +//send email + $sent = 0; + $email = new email; + $email->recipients = $email_recipient; + $email->subject = 'Test Message'; + $email->body = $email_body; + $email->from_address = $email_from_address; + $email->from_name = $email_from_name; + $email->attachments = $email_attachments ?? null; + $email->debug_level = 3; + $email->method = 'direct'; + ob_start(); + $sent = $email->send(); + $send_response = ob_get_contents(); + ob_end_clean(); + $end_response = $email->response; + +//format response + $email_response = array_merge(explode("\n", str_replace('
', '', $end_response)), explode("
\n", $send_response)); + if (!empty($email_response) && is_array($email_response) && @sizeof($email_response) != 0) { + foreach ($email_response as $x => $line) { + if (empty(trim($line))) { unset($email_response[$x]); } + } + } + +//show the content + echo "\n"; + echo "".$text['header-email_test']."\n"; + echo "

\n"; + + echo $text['description-email_test']."\n"; + echo "


\n"; + + echo "".$text['header-settings']."\n"; + echo "

\n"; + ksort($_SESSION['email']); + echo "\n"; + foreach ($_SESSION['email'] as $name => $setting) { + foreach ($setting as $type => $value) { + echo "\n"; + if ($type == 'uuid') { $uuid = $value; continue; } + if ($name == 'smtp_password') { $value = str_repeat('*', strlen($value)); } + if (permission_exists('default_setting_edit')) { + echo "\n"; + echo "\n"; + } + else { + echo "\n"; + echo "\n"; + } + echo "\n"; + } + } + echo "
".$name."".$value."".$name."".$value."
\n"; + echo "

\n"; + + echo "".$text['header-connection']."\n"; + echo "

\n"; + + echo "
\n"; + + if (!empty($email_response) && is_array($email_response) && @sizeof($email_response) != 0) { + echo implode("
\n
\n", $email_response); + } + echo "
\n"; + echo "

\n"; + + echo "".$text['header-result']."\n"; + echo "

\n"; + echo $sent ? "Message Sent Successfully
Receipient: ".$email_recipient."" : "Message Failed"; + + echo "

\n"; + echo "
\n"; + echo " \n"; + echo "
\n"; + +?> \ No newline at end of file