2010-11-19 15 views
5

kiedy wysyłam e-mail to echo wielu niepotrzebnych tekstów, nie chcę, aby ten tekst został wydrukowany. jak mogę wyłączyć ten tekst.dlaczego tekst echa klasy phpmailer?

przykład:

SMTP -> FROM SERVER:220 mx.google.com ESMTP p1sm1037082ybn.17 
SMTP -> FROM SERVER: 250-mx.google.com at your service, [xxx.xxx.xxx.xxx] 250-SIZE 35651584 250-8BITMIME 250-AUTH LOGIN PLAIN XOAUTH 250 ENHANCEDSTATUSCODES 
SMTP -> FROM SERVER:250 2.1.0 OK p1sm1037082ybn.17 
SMTP -> FROM SERVER:250 2.1.5 OK p1sm1037082ybn.17 
SMTP -> FROM SERVER:354 Go ahead p1sm1037082ybn.17 
SMTP -> FROM SERVER:250 2.0.0 OK 1290167720 p1sm1037082ybn.17 

używam plik class.phpmailer.php i stosując metodę $ obj.Send(), aby wysłać wiadomość. ??

dziękuję

Odpowiedz

9

PHPMailer ma flagę "debugowania", którą możesz wyłączyć.

W zależności od używanej wersji można ją nazwać Debug lub SMTPDebug. Poznasz to, kiedy to zobaczysz. Jeśli to konieczne, zajrzyj do pliku klasy, aby znaleźć nazwę.

Ustaw to na fałszywe i wszystko jest w porządku.

+0

Nice. Pracujesz z tą biblioteką z dnia na dzień, a może masz jakieś pigułki, które pomagają ci zapamiętać długie dokumenty API? :) Jeśli to drugie, oto mój adres ... – pestaa

+0

Położyłem SMTPDebug = 2, czy to jest przyczyną? –

+0

@pestaa heh, z jakiegoś powodu zapamiętałem to z debugowania serwera SMTP raz :) –

5

Domyślnie nie powinno generować żadnych wyników. Upewnij się, że nie jest opakowany w instrukcję/funkcję echo/echo.

Obejście może wymagać użycia ob_start() na początku i ob_get_clean() na końcu skryptu programu pocztowego, aby uniemożliwić wyjście z bufora.

+1

ob_start(); $ mail-> Send(); ob_get_clean(); // działa dobrze, dziękuję! – Qlimax

+0

świetna odpowiedź !!!! – Prozi

+0

To działało również dla mnie. Dzięki @pestaa i Qlimax –

3

Jak wymienić powyżej jest to opcja SMTPDebug, po prostu zrobić:

$mail->SMTPDebug = 0;