Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: brak załącznika (PHPMailer)
Forum PHP.pl > Forum > PHP
RAM
Dzień dobry,
Mam taki problem:
Wysyłam przy pomocy PHPMailera emaila z załącznikiem. Na localhoście (serwer poczty Postfix) załącznik jest, natomiast na serwerze hostingowym (serwer poczty EXIM) załącznika nie ma. Problem w tym, że jest jakiś problem na serwerze hostingowym (chyba z eacceleratorem) i nie mogę tego dobrze przetestować/przedebugować.
Oto kod:

function sendEmail($to, $recipients, $subject, $bodyText, $bodyHTML, $fullAnnouncementNo, $withAttachments, $logEntry) {

global $db, $websiteRoot;
try {

$mail = new PHPMailer();

$mail->CharSet = 'ISO-8859-2';

$mail->IsSMTP();

$mail->Host = 'localhost';

$mail->SMTPAuth = false;
$emailFrom = file_get_contents('.email_from.txt');
$mail->From = $emailFrom;

$mail->AddReplyTo($emailFrom);

if (!empty($to)) {

$mail->AddAddress($to);

}

if (!empty($recipients)) {

foreach (explode(',', $recipients) as $bcc) {

$mail->AddBCC($bcc);

}

}

$mail->IsHTML(!empty($bodyHTML));

$mail->Subject = $subject;

if (!empty($fullAnnouncementNo)) {

getAnnouncementYearMonthNo($fullAnnouncementNo, $year, $month, $no);

}

$mail->MsgHTML($bodyHTML);

$mail->AltBody = $bodyText;

if ($withAttachments && !empty($fullAnnoucementNo)) {

$result = $db->query('SELECT file_name, picture FROM pictures ' .

"WHERE announcement_year = $year AND announcement_month = $month AND announcement_no = $no");

while ($row = $result->fetch_row()) {
$mail->AddStringAttachment(stripslashes($row[1]), $row[0]);

}

$result->close();
}

$s = $mail->Send();

if (!$s) {

return false;

}

} catch (phpmailerException $e) {

return false;

} catch (Exception $e) {

return false;

}

if (!empty($fullAnnouncementNo)) {

writeToLog(null, null, $currentAdmin, $year, $month, $no, $logEntry);

} else {

writeToLog(null, null, $currentAdmin, null, null, null, $logEntry);

}

return true;
}


Funkcję wywołuję tak: sendEmail(null, $recipients, $subject, $bodyText, $bodyHTML, 'A10041', true, $logEntry);
Tabela pictures zawiera rekord: announcement_year=2010,announcement_month=4,announcement_no=1,file_name='log.gif',picture=[BLOB 245 bajtów]
dodany tak:

function insertPicture($fullAnnouncementNo, $fileName) {

global $db, $tmpDir;

$picture = addslashes(file_get_contents("$tmpDir/$fullAnnouncementNo/$fileName"));

if (is_empty($picture)) {

return false;

}

getAnnouncementYearMonthNo($fullAnnouncementNo, $year, $month, $no);
return $db->query("INSERT INTO pictures VALUES ($year, $month, $no, '$fileName', '$picture')") !== false;

}


Wysyła się email bez załącznika a powinien być 1 plik log.gif załączony.

Byłbym bardzo wdzięczny za pomoc, zależy mi na sprawie.
nospor
po pierwsze: uzywaj bbcode!
po drugie: wlacz wyswietlanie wszystkich bledow to moze zobaczysz jakis blad:
  1. ini_set('display_errors','1');
RAM
żaden błąd się nie wyświetla
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.