[Yii 1] Problema invio mail

Salve da alcuni giorni sulla mia applicazione che gira su hosting aruba ho qualche problema di invio mail.

lo script funziona così:

ho un action che invoca il sendmail:




public function actionSendmailCheckTest()

{

     Helpers::sendMailTest();                    

}



e poi in components/Helpers.php ho




class Helpers extends CComponent

{

    public static function sendMailTest(){

       mail('maiemail@test.it', $oggetto, $text, $headers);

    }

}



Attualmente contattando l’indirizzo all’url/SendmailCheckTest

ho pagina bianca e nessuna email inviata.

La faccenda mi si complica ulteriormente se provo a bypassare l’utilizzo dell’helper

e uso la funzione mail di php all’interno della action suddetta. In questa maniera la mail parte.

Secondo voi dove risiede il problema?

Ovviamente fino a pochi giorni fa tutto funzionava normalmente, esiste qualche errore formale in quello che faccio?

Grazie a tutti per l’aiuto.

I components non si usano come classi ‘classiche’.

Vanno dichiarate nel config/main.php

Nel tuo caso




	// application components

	'components'=>array(

             .....

              'helpers' => array('class' 	=> 'Helpers'),



Devi chiamare il file Helpers.php e metterlo nella cartella components. Verifica che, sempre nel config/main.php, questo percorso sia tra gli import automatici




        // autoloading model and component classes

	'import'=>array(

                ...


		'application.components.*',



A questo punto togli la dichiarazione di ‘static’ dalla function e puoi usarlo, dovunque nel codice, così




    Yii::app()->helper->sendMailTest();



Fatto questo, per il debug abilita gli errori, tutti, con




ini_set('error_reporting','on');

error_level(E_ALL);



come prima riga della function sendMailTest.

Per il discorso mail, specificamente, tieni conto che il server deve avere un qualche server smtp per effettuare l’invio, e molti server condivisi NON ce l’hanno. Per dirtene una: l’ottima register.it dà gli spazi in host condiviso a prezzi assurdi, e supportano l’invio delle mail, ma solo una per ora per host… Se fai due test come il tuo arriva la prima ‘entro un ora’ in un momento random, e la successiva come minimo dopo 50 minuti.

In breve: visto che prima funzionava, penso che dichiarando il componente in modo dovuto ed usandolo come previsto dovrebbe andare di nuovo

Ciao realtebo intanto ti ringrazio per la risposta,

avevo già fatto questa prova ieri, di dichiarare il componente nel main e tutto il resto ma non ha portato a niente di diverso.

Poi… se ci dovevano essere dei problemi a livello di yii, doveva comunque segnalarmeli o almeno non funzionare anche prima.

Non capisco.

imposta su paranoico il livello di segnalazione errori di php, e riprova facendo uno step alla volta.

prima prova facendo una echo dentro l’action

poi imposta PER BENE il componente in modo che sia lui a fare una echo e basta, e richiamalo dalla action.

e così via…

Facci sapere, se vuoi, l’esito dei vari tentativi.

ciao come ti dicevo sia le varie prove che il debug è stato effettuato a vari livelli,ma nulla di fatto!

Allora mi sono concentrato più sul problema lato server smtp aruba.

Cosa è potuto succedere?

Ho guardato gli headers delle mie email e ho notato che viene inviato anche questo dato:

X-PHP-Originating-Script: 33:Helpers.php

Quindi ho pensato che se mi hanno bloccato qualcosa lo hanno fatto su questo script

ecco perchè dalla action invece partono normalmente.

Infatti ho caricato un php.ini personalizzato con mail.add_x_header settato ad off

così quando la funzione mail invia la mail non manda questo particolare header

e di fatti ora è ripartito tutto.

Spero che a qualcuno possa servire… io intanto aspetto la risposta ufficiale da aruba.

L’invio delle mail tramite PHP da Aruba è una rogna costante, spesso non partono senza neanche dare il minimo errore, appena posso cerco gli header precisi che utilizzavo quando usavo aruba ma spesso ero costretto ad utilizzare sistemi di spooling perchè bastavano 3/4 email in un minuto per attivare i loro sistemi antispam.

Se vuoi un consiglio spassionato, scappa da aruba.

L’invio delle mail tramite PHP da Aruba è una rogna costante, spesso non partono senza neanche dare il minimo errore, appena posso cerco gli header precisi che utilizzavo quando usavo aruba ma spesso ero costretto ad utilizzare sistemi di spooling perchè bastavano 3/4 email in un minuto per attivare i loro sistemi antispam.

Se vuoi un consiglio spassionato, scappa da aruba.

si si ma infatti io avevo tutti gli errori attivi per il debug e non vedevo errori,

ecco perchè poi mi sono buttato sul server smtp di aruba.

Comunque non sono stato io a scegliere aruba… me lo devo tenere :D