Есть код отправки почты с возможностью прикрепления файла Все прекрасно работало на поддомене, когда перенес на основной, код перестал работать. То есть письма приходят, но если идет прикрепление файла, то письмо приходит пустое, если прикрепления файла нет, то пиьсмо приходит с текстом
function send_mail($mail_to, $mail_from, $thema, $html, $path, $file_name){
if ($path) {
$fp = fopen($path,"rb");
if (!$fp){
$html .= "<br><p>Файл не отправлен!</p>";
$file = "";
}else{
$file = fread($fp, filesize($path));
fclose($fp);
}
}
$name = $file_name;
$EOL = "\r\n";
$boundary = "--".md5(uniqid(time()));
$headers = "MIME-Version: 1.0;$EOL";
$headers .= "Content-Type: multipart/mixed; boundary=\"$boundary\"$EOL";
$headers .= "From: ".$mail_from;
$multipart = "--$boundary$EOL";
$multipart .= "Content-Type: text/html; charset=utf-8$EOL";
$multipart .= "Content-Transfer-Encoding: base64$EOL";
$multipart .= $EOL;
$multipart .= chunk_split(base64_encode($html));
$multipart .= "$EOL--$boundary$EOL";
$multipart .= "Content-Type: application/octet-stream; name=\"$name\"$EOL";
$multipart .= "Content-Transfer-Encoding: base64$EOL";
$multipart .= "Content-Disposition: attachment; filename=\"$name\"$EOL";
$multipart .= $EOL;
$multipart .= chunk_split(base64_encode($file));
$multipart .= "$EOL--$boundary--$EOL";
if(!mail($mail_to, $thema, $multipart, $headers)){
return False;
}else {
return True;
}
exit;
}
$arResult['ok'] = "N";
$myFaile = "";
$file_name = "";
$otv = 0;
if (!empty($_FILES['upload']['tmp_name'])) {
$path = $_SERVER['DOCUMENT_ROOT']."/upload/".$_FILES['upload']['name'];
if (copy($_FILES['upload']['tmp_name'], $path)){
$myFaile = $path;
$file_name = $_FILES['upload']['name'];
}
}
$thm = "Тема с файлом";
$mail_to = 'Почта на которую приходит письмо с файлом';
$thm_otv = "Тема без файла";
$mail_to_otv = $_POST['email'];// тут маил на который приходит письмо без файла
if(!empty($_POST['email'])){
$otv = 1;
}
$msg = "Текст письма с файлом";
$msg_otv = "Текст письма без файла";
$mail_from = 'Маил отправителя';
$headers = 'From: '.htmlspecialchars($_POST['email'])."\r\n".'Reply-To: '.$mail_to."\r\n".'X-Mailer: PHP/'.phpversion();
if(empty($myFaile))
{
$arResult['ok'] = "N";
}
else
{
if(send_mail($mail_to, $mail_from, $thm, $msg, $myFaile, $file_name))
{
if($otv == 1)
{
$headers_otv = "Content-type: text/html; charset=utf-8 \r\n";
$headers_otv .= "From: ad@twc.in.ua";
if(mail($mail_to_otv, $thm_otv, $msg_otv, $headers_otv))
{
$arResult['ok'] = "Y";
}
else
{
$arResult['ok'] = "N";
}
}
else
{
$arResult['ok'] = "Y";
}
}
else
{
$arResult['ok'] = "N";
}
//unlink($myFaile);
}
echo json_encode($arResult);
die();
js код отправки данных в php
function writeMeSubmit(form){
//создаем экземпляр класс FormData, тут будем хранить всю информацию для отправки
var formData = new FormData();
//не забывайти проверить поля на заполнение
//код проверки полей опустим, он к статье не имеет отнашение
//присоединяем наш файл
jQuery.each($('#upload')[0].files, function(i, file) {
formData.append('upload', file);
});
//присоединяем остальные поля
formData.append('email', $('input#email2').val());
$.ajax({
url: "call.php",
type: "POST",
dataType : "json",
cache: false,
contentType: false,
processData: false,
data: formData, //указываем что отправляем
success: function(data){
if(data.ok == 'Y'){
$("#rez2").fadeIn(500);
setTimeout(function(){$("#rez2").fadeOut(500);},5000);
}else{
$("#err2").fadeIn(500);
setTimeout(function(){$("#err2").fadeOut(500);},5000);
}
}
});
return false;
}
Продвижение своими сайтами как стратегия роста и независимости