/ / PHP скрипт се провали при $ mail = нов PHPMailer () без съобщение за грешка - php, email, phpmailer

PHP скриптът се проваля в $ mail = new PHPMailer () без съобщение за грешка - php, email, phpmailer

Това ме кара да се издигам до стена!

Опитвам се да използвам phpmailer за изпращане на електронна поща. Тук е моят код:

 print "about to do the require!";
require_once("$s[phppath]/phpmailer.php");
print "require has been successful! creating a PHPMailer object!";
$mail = new PHPMailer();
print "yay!";

Въпреки това, програмата никога не стига до "yay", тя умирав ред 4 ($ mail = нов PHPMailer ();). Най-вбесяващо е, че не се показва съобщение за грешка, въпреки че php работи с display_errors = On. За да проверя това, хвърлих няколко очевидни грешки, като например прескачане на запетаи в края на реда, и веднага получавам съобщение за грешка за това.

Какво, по дяволите, става тук?

Редактиран Промених кода по следния начин:

require_once("$s[phppath]/phpmailer.php");
try {
$mail = new PHPMailer(true);
} catch (phpmailerException $e) {
echo $e->errorMessage(); //Pretty error messages from PHPMailer
} catch (Exception $e) {
echo $e->getMessage(); //Boring error messages from anything else!
}

Все още няма зарове.

Отговори:

1 за отговор № 1

Добре, имаше две части на този въпрос:

1) Защо няма съобщения за грешки? Чувствам се много, много глупав по този въпрос, защото макар че бях включен display_errors, собственият ми скрипт действително забрани error_reporting. Благодаря на Pathik Ghandi, че посочи това много просто решение. Понякога мога да бъда доста специален.

2) Защо PHPMailer не работи? Защото сега PHPMailer изисква два файла вместо един: class.phpmailer.php не е достатъчно. Сега също се нуждаете от PHPMailerAutoload.php. Надявам се, че това помага на някой по линията!


0 за отговор № 2

Опитайте да извикате $ s [phppath], за да сте сигурни, че сте на правилния път. Презареждане и препращане на phpMailer lib. Опитайте да използвате require вместо require_once, Опитайте да използвате include вместо require, Отидете в phpmailer.php файла и добавете ехо или нещо, за да сте сигурни, че всъщност изисквате този файл.

За по-сигурно; Имате ли някаква рамка? т.е. Wordpress? Ако е така, може да се наложи да зададете флаг за показване на съобщения за грешки в PHP. WP: define ("WP_DEBUG", true);


0 за отговор № 3

Опитайте да се обадите на функцията restore_error_handler () по-горе.