Phpmailer изпраща прикачени файлове, но не и тялото

Имам формуляр, който се опитвам да получа по имейл при изпращане с помощта на PHPmailer. По някаква причина phpmailer изпраща прикачените файлове на имейла, но не и тялото/съобщението. Ето моя phpmailer файл..

$name = "Purchase Form";
$email_subject = "New Purchase Ticket";

$body = "geg";

foreach ($_REQUEST as $field_name => $value){
if (!empty($value)) $body .= "$field_name = $value\n\r";
}
$Email_to = "[email protected]"; // the one that recieves the email
$email_from = "No reply!";
//
//==== PHP Mailer With Attachment Func ====\\
//
function SendIt() {
//
global $attachments,$body,$name,$Email_to,$email_subject,$email_from;
//
$mail = new PHPMailer();
$mail->IsQmail();// send via SMTP
$mail->From = $email_from;
$mail->FromName = $name;
$mail->AddAddress($Email_to);
$mail->AddReplyTo($email_from);
$mail->WordWrap = 50;// set word wrap
$mail->IsHTML = true;
$mail ->MsgHTML($body);
$mail->AltBody = 'to view blah';
foreach($_FILES as $key => $file){
$target_path = "uploads/";
$target_path = $target_path .basename($file['name']);

if(move_uploaded_file($file['tmp_name'], $target_path)) {
echo "the file ".basename($file['name'])." has been uploaded";
}else {
 echo "there was an error";
}
$mail->AddAttachment($target_path);
}

$mail->Subject = $email_subject;
if(!$mail->Send())
{
}
//
{echo "Message has been sent";}


foreach($_FILES as $key => $file){
$target_path = "uploads/";
$target_path = $target_path .basename($file['name']);
unlink($target_path);}
}


SendIt();




}




?>

Някакви данни? Благодаря.


person Jonah Katz    schedule 18.07.2011    source източник


Отговори (1)


->MsgHTML() не задава тялото. Той връща модифицирана версия с inlined-img url адреси и какво ли още не и НЕ задава AltBody на текстова версия на HTML. Все още трябва да направите

$mail->Body = $body;
person Marc B    schedule 18.07.2011
comment
Така че, когато го направя, пак не работи. Но ако коментирам (или изтрия) реда $mail-›AddAttachment, тялото СЕ изпраща. - person Jonah Katz; 18.07.2011
comment
Защо все още правите цялата тази конструкция за преместване/прикачване/изтриване? Можете да прикачите директно от името на временния файл, създадено от PHP, и да посочите „показвано“ име за файла в извикването AddAttachment(). - person Marc B; 18.07.2011
comment
Това не работи правилно и това е... Не виждам защо това не работи с $body - person Jonah Katz; 18.07.2011
comment
Мислите ли, че можете да ми помогнете да накарам тялото и добавката да бъдат изпратени в един и същи имейл? Вместо да избирате едното или другото - person Jonah Katz; 18.07.2011
comment
Поразява ме, никога не съм имал този проблем с PHPmailer. привързаностите и телата преминават добре за мен моментите, когато трябва да правя и двете едновременно. - person Marc B; 18.07.2011
comment
Въпреки че това е старо, то просто не е вярно. msgHTML() винаги е задал свойството Body. - person Synchro; 19.09.2017