Intereting Posts
Какие существуют методы инициализации объектно-ориентированной инфраструктуры PHP? Можно ли защитить весь контроллер в Symfony 2? Скопируйте большие файлы (более 2 ГБ) в PHP Запрос API REST WooCommerce возвращает ошибку Проблемы с контактной формой Ajax – не отправляется электронное письмо Ответ службы wsdl после отправки переменных, php Обнаружение, если изображение встроено fgetcsv не корректно считывает файл csv, который сохраняется в системе linux Отображать записи mySQL в виде столбцов таблицы HTML Использование SimpleHtmlDom, как удалить и заменить определенный атрибут Возврат только последнего результата из LEFT JOIN Декодировать объект amf3 с помощью PHP Как я могу получить перечисление возможных значений в базе данных MySQL? Symfony2: вызов form_widget в исключении twig throws «Catchable fatal error … должен быть экземпляром Symfony \ Component \ Form \ FormView» Как переключить файлы макета в Zend Framework?

Возьмите файл типа ввода (HTML) на JavaScript и отправьте электронное письмо с помощью PHPmailer

Я использую PHPMailer, JavaScript и PHP, через свой код я отправляю электронное письмо конкретному пользователю, следующий шаг – это прикрепить файл с адресом электронной почты.

Но у меня есть два вопроса:

  1. первый из них связан со следующим кодом:

Часть HTML:

<input type="file" name="myFile" id="myFile" required/> 

Я использую этот, чтобы прикрепить файл, часть сообщения электронной почты

Часть JavaScript, моя функция отправки электронной почты (пока я могу отправить электронное письмо с тестовыми данными)

 function SendMail(){ var cod="1234"; var subject="hello my friend"; $.get("SendMail.php?cod="+cod+"&subject="+subject+""); // (1) } при function SendMail(){ var cod="1234"; var subject="hello my friend"; $.get("SendMail.php?cod="+cod+"&subject="+subject+""); // (1) } 

В (1) как я могу отправить входной файл, прикрепленный к моему файлу php?

Подобно,

  $.get("SendMail.php?cod="+cod+"&subject="+subject+"&mail="FileRelatedWithInputID); 
  1. Когда я получил файл на PHP, как мне его форматировать, чтобы прикрепить его к электронной почте с помощью PHPMailer?

Вот и все, мои два вопроса по этому вопросу, я ценю ваши ответы и предложения.

Спасибо за ваше время и внимание.

Отредактировано:

Мой PHP-файл:

 require '../PHPMailer_5.2.4/PHPMailerAutoload.php'; $server = "localhost"; $user = "root"; $pass = "pass"; $bd = "BD"; $strHTML1=$_GET["cod"]; $strHTML2=$_GET["subject"]; // HOW DO I _GET THE FILE FROM JS AND FORMAT FILE PROPERLY TO THE MAIL? $strHTML3= $strHTML1.$strHTML2; $mail="mail@gmail.com"; session_start(); $conexion = mysqli_connect($server, $user, $pass,$bd) or die("ERROR"); $mail = new PHPMailer(); $mail->isSMTP(); $mail->CharSet = "UTF-8"; $mail->SMTPDebug = 2; $mail->Mailer = "smtp"; $mail->WordWrap = 50; $mail->PluginDir = "../tickets/PHPMailer_5.2.4/"; $mail->Debugoutput = 'html'; $mail->Host = 'smtp.gmail.com'; $mail->Port = 465; $mail->SMTPSecure = 'ssl'; $mail->SMTPAuth = true; $mail->Username = "mail@site.com.en"; $mail->Password = "12345"; $mail->SMTPSecure = 'ssl'; $headers = "MIME-Version: 1.0\r\n"; $headers .= "Content-type: text/html; charset=iso-8859-1\r\n"; $headers .= "From:Home\r\n"; $mail->AddAddress($mail, "test"); $mail->isHTML(true); $mail->Subject = $strHTML2; $mail->Body =$strHTML3; if(!$mail->send()) { echo 'Message could not be sent.'; echo 'Mailer Error: ' . $mail->ErrorInfo.' '; exit; } $close = mysqli_close($conexion) or die("ERROR"); 

Вы пытаетесь отправить файл, используя метод get. Метод Get не поддерживает multipart. Для загрузки файла вы должны использовать метод post, а форма должна иметь multipart / form-data. Ваша форма должна быть такой, как

 <form method="post" action="" enctype="multipart/form-data" id="sendMailForm"> <input type="hidden" name="code" id="code" value="1234"/> <input type="hidden" name="subject" id="subject" value="Hello My Friends"/> <input type="submit" value="Send Mail" /> 

Вызовите функцию SendMail в форме submit.

 $("#sendMailForm").submit(function(evt){ evt.preventDefault(); var formData = new FormData($(this)[0]); SendMail(formData); return false; }); function SendMail(formData){ $.ajax({ url: 'SendMail.php', type: 'POST', data: formData, async: false, cache: false, contentType: false, enctype: 'multipart/form-data', processData: false, success: function (response) { alert(response); } }); } 

Обновите свой почтовый код отправки на стороне сервера для файла attach и получите данные в методе post вместо метода get.

 require '../PHPMailer_5.2.4/PHPMailerAutoload.php'; $server = "localhost"; $user = "root"; $pass = "pass"; $bd = "BD"; $strHTML1=$_POST["cod"]; $strHTML2=$_POST["subject"]; $strHTML3= $strHTML1.$strHTML2; $mail="mail@gmail.com"; session_start(); $conexion = mysqli_connect($server, $user, $pass,$bd) or die("ERROR"); $mail = new PHPMailer(); $mail->isSMTP(); $mail->CharSet = "UTF-8"; $mail->SMTPDebug = 2; $mail->Mailer = "smtp"; $mail->WordWrap = 50; $mail->PluginDir = "../tickets/PHPMailer_5.2.4/"; $mail->Debugoutput = 'html'; $mail->Host = 'smtp.gmail.com'; $mail->Port = 465; $mail->SMTPSecure = 'ssl'; $mail->SMTPAuth = true; $mail->Username = "mail@site.com.en"; $mail->Password = "12345"; $mail->SMTPSecure = 'ssl'; $headers = "MIME-Version: 1.0\r\n"; $headers .= "Content-type: text/html; charset=iso-8859-1\r\n"; $headers .= "From:Home\r\n"; $mail->AddAddress($mail, "test"); $mail->isHTML(true); $mail->Subject = $strHTML2; $mail->Body =$strHTML3; //Attach file in sendmail - if (isset($_FILES['myFile']) && $_FILES['myFile']['error'] == UPLOAD_ERR_OK) { $mail->AddAttachment($_FILES['myFile']['tmp_name'], $_FILES['uploaded_file']['name']); } if(!$mail->send()) { echo 'Message could not be sent.'; echo 'Mailer Error: ' . $mail->ErrorInfo.' '; exit; } $close = mysqli_close($conexion) or die("ERROR");