2014-01-28 3 views
0

Я сохраняю excel в папке на моем сервере (примечание excel хранится на сервере), я пытаюсь отправить электронное письмо с вложением excel, сохраненным на моем сервере, но я didn ' t получить электронное письмо с вложением (то есть: я получил электронную почту без вложения), ниже мой код, пожалуйста, назовите меня, как это сделать.Как отправить электронное письмо с приложением excel

$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5'); 
$objWriter->save('/data/data/www/ms/pricelists/newxcelexample.xls'); 

$my_path ="/data/data/www/ms/pricelists/newxcelexample.xls"; 

include "class.phpmailer.php"; // include the class file name 
$mail = new PHPMailer(); // create a new object 
$mail->IsSMTP(); // enable SMTP 
$mail->SMTPDebug = 1; // debugging: 1 = errors and messages, 2 = messages only 
$mail->SMTPAuth = true; // authentication enabled 
//$mail->SMTPSecure = 'ssl'; // secure transfer enabled REQUIRED for GMail 
$mail->Host = "mail.xichlomobile.com"; 
$mail->Port = "25"; // or 587 
$mail->IsHTML(true); 
$mail->Username = "************"; 
$mail->Password = "**********"; 
$mail->SetFrom("**************"); 
$mail->Subject = Test; 
$mail->Body = "Test"; 
$mail->AddAddress("*********"); 
$mail->AddAttachment($my_path); 

if(!$mail->Send()){ 
echo "Mailer Error: " . $mail->ErrorInfo; 
} 
else{ 
echo "<span style='font-size:45px;color:#000000;'>Message has been sent</span><br><br>"; 
} 

ответ

-1

Вы контролируете, что файл действительно присутствует и сохраняется правильно? Правильно ли веб-сервер читает файл (обычно читаемый пользовательскими www-данными)?

Возможно попытаться поставить и имя файла для AddAttachment:

$mailer->AddAttachment($my_path, basename($my_path)); 
// or 
$mailer->AddAttachment($my_path, basename($my_path), "quoted-printable", "application/vnd.ms-excel") ; 

Если вы используете более новую версию PHPMailer, вы можете также использовать исключение, чтобы увидеть, что происходит. Возможно, это не препятствует выходу почты из-за прикрепления файла.

try { 
    // preparing the email just before the mail->Send() 
} catch (phpmailerException $e) { 
    echo $e->errorMessage(); //Pretty error messages from PHPMailer 
} catch (Exception $e) { 
    echo $e->getMessage(); //Boring error messages from anything else! 
} 

Попробуйте отправить другой файл за один раз, например. * .txt или * .zip (чтобы проверить, есть ли у вас ограничения на типы файлов, которые вы можете отправить, что вряд ли будет для файла excel).

Смежные вопросы