Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- class email {
- private $status;
- private $erros;
- public function __construct() {
- $this->__setStatus(false);
- $this->__setErros(array());
- }
- private function __setStatus($s = false) {
- $this->status = (is_bool($s)) ? $s : false;
- }
- private function __setErros($e = array()) {
- $this->erros = (is_array($e)) ? $e : array();
- }
- public function getStatus() {
- return $this->status;
- }
- public function getErros() {
- return $this->erros;
- }
- public function validarForm($dados = array()) {
- $erros = $campos = array();
- if (!(strlen(trim($_POST['name'])) > 0)) {
- $campos[] = 'nome';
- }
- if (!(strlen(trim($_POST['email'])) > 0)) {
- $campos[] = 'email';
- }
- if (!empty($campos)) {
- $erros[] = 'Por favor, verifique o(s) campo(s) - ( ' . implode(',', $campos) . ' )';
- }
- if ($this->__existUploads($files)) {
- $count = count($files['tmp_name']);
- $invalidos = array();
- for ($i = 0; $i < $count; $i++) {
- $size = $files['size'][$i];
- if ($size > 2000000) {
- $invalidos[] = $files['name'][$i];
- }
- }
- if (!empty($invalidos)) {
- $erros[] = 'Por favor, verifique o(s) arquivo(s) - ( ' . implode(',', $invalidos) . ' )';
- }
- }
- $status = (empty($erros));
- $this->__setStatus($status);
- $this->__setErros($erros);
- return $erros;
- }
- private function __criarPastaArquivos() {
- if ($this->__existUploads($files)) {
- $total = count($files['tmp_name']);
- for ($i = 0; $i < $total; $i++) {
- $dir = $this->__getFolderContatoPorEmail();
- if (!is_dir($dir)) {
- mkdir($dir);
- }
- if (!file_exists($dir . '/' . $files["name"][$i])) {
- move_uploaded_file($files["tmp_name"][$i], $dir . '/' . $files["name"][$i]);
- }
- }
- }
- }
- private function __getFolderContatoPorEmail() {
- return "../storage/contatos/" . $_POST['email'];
- }
- private function __existUploads(&$files) {
- $r = false;
- $files = (isset($_FILES['files'])) ? $_FILES['files'] : array();
- if (is_array($files) && !empty($files)) {
- if (isset($files['tmp_name'])) {
- $r = true;
- }
- }
- return $r;
- }
- public function enviar() {
- require 'libs/PHPMailer/PHPMailerAutoload.php';
- $this->__criarPastaArquivos();
- $mail = new PHPMailer;
- //$mail->SMTPDebug = 3; // Enable verbose debug output
- $mail->isSMTP(); // Set mailer to use SMTP
- $mail->Host = 'smtp.live.com'; // Specify main and backup SMTP servers
- $mail->SMTPAuth = true; // Enable SMTP authentication
- $mail->Username = 'xxx'; // SMTP username
- $mail->Password = 'xxx'; // SMTP password
- $mail->SMTPSecure = 'tls'; // Enable TLS encryption, `ssl` also accepted
- $mail->Port = 587; // TCP port to connect to
- $mail->setFrom('xxx', 'Mailer');
- $mail->addAddress('xxx', 'Joe User'); // Add a recipient
- //$mail->addReplyTo('info@example.com', 'Information');
- //$mail->addCC('cc@example.com');
- //$mail->addBCC('bcc@example.com');
- if ($this->__existUploads($files)) {
- $total = count($files['tmp_name']);
- for ($i = 0; $i < $total; $i++) {
- $dir = $this->__getFolderContatoPorEmail();
- $dir .= "/" . $files["name"][$i];
- $mail->addAttachment($dir);
- }
- }
- $mail->isHTML(true);
- $mail->Subject = $_POST['assunto'];
- $html = " <div>"
- . " <strong>Contato: </strong>" . $_POST['email'] . "<br> "
- . " <strong>Data: </strong>" . date('d/m/Y H:i:s') . "<br> "
- . " <br><hr><br> "
- . " <fieldset>"
- . " <legend>Mensagem</legend> "
- . " <p>" . ((strlen(trim($_POST['mensagem'])) > 0) ? $_POST['mensagem'] : 'Nenhuma mensagem foi escrita') . "</p> "
- . " </fieldset> "
- . "</div>";
- $mail->Body = $html;
- //$mail->AltBody = 'This is the body in plain text for non-HTML mail clients';
- $status = $mail->send(); //$mail->ErrorInfo;
- $this->__setStatus($status);
- }
- }
- $email = new email();
- $email->validarForm();
- $status = $email->getStatus();
- if ($status == true) {
- $email->enviar();
- $status = $email->getStatus();
- echo json_encode(array(
- 'status' => $status,
- 'msg' => ($status == true) ? 'Eamil enviado com sucesso, aguarde o nosso retorno, Obrigado !' : 'Ocorreu um problema no momento do envio, tente novamente !',
- 'validacao' => false
- ));
- } else {
- echo json_encode(array(
- 'status' => false,
- 'msgs' => $email->getErros(),
- 'validacao' => true
- ));
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement