Homepage  Il progetto dsy.it è l'unofficial support site dei corsi di laurea del Dipartimento di Scienze dell'Informazione e del Dipartimento di Informatica e Comunicazione della Statale di Milano. E' un servizio degli studenti per gli studenti, curato in modo no-profit da un gruppo di essi. I nostri servizi comprendono aree di discussione per ogni Corso di Laurea, un'area download per lo scambio file, una raccolta di link e un motore di ricerca, il supporto agli studenti lavoratori, il forum hosting per Professori e studenti, i blog, e molto altro...
In questa sezione è indicizzato in textonly il contenuto del nostro forum


.dsy:it. .dsy:it. Archive > Community > Tech
 
[php o javascript]Manipolare protocollo SMTP
Clicca QUI per vedere il messaggio nel forum
Drake83
Ciao a tutti! Ho creato un'applicativo in php che in certe situazioni deve inviare in automatico delle mail. Il problema è che il mittente è ovviamente quello settato sul file php.ini del server e non il mittente che desidero io. E' molto probabile che il server abbia settato come mittente un account non esistente e quindi alcuni gestori (vedi ad esempio tiscali) rigettano la mail. Avevo quindi bisogno di trattare il protocollo smtp per l'invio in modo tale da settare a mio piacimento il mittente. Conoscete funzioni php o in javascript che mi permettano una operazione del genere?


Vi ringrazio

ciao :D

yeah
Cambia sendmail_from con ini_set() prima di inviare l'email, oppure all'inizio dello script. La modifica vale per tutta la durata dello script.


[edit] Javascript?? Mmmh...

Drake83
Originally posted by yeah
Cambia sendmail_from con ini_set() prima di inviare l'email, oppure all'inizio dello script. La modifica vale per tutta la durata dello script.


[edit] Javascript?? Mmmh...


Grazie :D Ora ci perdo un po di tempo e verifico. (ho scritto javascript perchè il gestore del server mi aveva consigliato così anche se non è che mi avesse molto convinto)

Gusher
scusa, ma settando negli header del messaggio il campo "From:<addr@realdomain.com>" arriva al mittente con l'indirizzo settato in php.ini? Mi sembra un po' assurdo.

Drake83
Originally posted by Gusher
scusa, ma settando negli header del messaggio il campo "From:<addr@realdomain.com>" arriva al mittente con l'indirizzo settato in php.ini? Mi sembra un po' assurdo.


no no guarda che è così davvero. Perchè il mittente è settato nel file php.ini. Lo avevo fatto anche io per far girare una applicazione in passato e il mittente deve essere settato nel file di configurazione. Poi che a video compaia il form che hai settato da script è un'altro paio di maniche. I server di destinazione non la cagano proprio quell'etichetta.
Tu hai provato soluzioni diverse?

yeah

deve essere settato nel file di configurazione.

Su questo punto sarei scettico. Io non ho accesso al file di configurazione, ma probabilmente tale direttiva non c'è sul server che ospita il mio sito, visto che con gli header funziona senza problemi :)

Drake83
Originally posted by yeah
Su questo punto sarei scettico. Io non ho accesso al file di configurazione, ma probabilmente tale direttiva non c'è sul server che ospita il mio sito, visto che con gli header funziona senza problemi :)


Molto probabile :) ma purtroppo devo considerare tutti i casi peggiori. Per cui dato che ho notato che alcuni gestori modificano tale parametro a piacimento ho dovuto chiedervi come risolvere :D

Gusher
Originally posted by Drake83
no no guarda che è così davvero. Perchè il mittente è settato nel file php.ini. Lo avevo fatto anche io per far girare una applicazione in passato e il mittente deve essere settato nel file di configurazione. Poi che a video compaia il form che hai settato da script è un'altro paio di maniche. I server di destinazione non la cagano proprio quell'etichetta.
Tu hai provato soluzioni diverse?


Mi sembra molto strano, a meno che sia cambiato qualcosa nelle ultime versioni..

Una cosa di questo tipo (scrivendo gli header del messaggio) l'hai già provata?

$mailTo = '"Recipient Name" ";
$mailSubject = "Test";

// $mailBody previously defined.

$mailHeader = 'From: "'.$mailFrom.'" '."\r\n";
$mailHeader .= "Reply-To: $mailFrom\r\n";
$mailParams = "-f$mailFrom";
$mailResult = mail($mailTo,$mailSubject,$mailBody,$mailHeader,$m
ailParams);

Gusher
Comunque, nel caso il mittente non sia modificabile, potresti utilizzare direttamente il protocollo SMTP via socket. Se non hai da gestire codifiche particolari, allegati etc. ma solo del testo, può essere una soluzione valida e veloce. In questo modo, però, non hai il supporto "code", cosa che tutti gli SMTP server hanno; se il server di posta ti risponde con un temporary reject (es. server che implementa graylist) devi gestirlo via script. Idem per altri eventuali errori/messaggi. Insomma devi sperare che il server di posta ti accetti il messaggio al primo colpo ;)

Drake83
Originally posted by Gusher
Comunque, nel caso il mittente non sia modificabile, potresti utilizzare direttamente il protocollo SMTP via socket. Se non hai da gestire codifiche particolari, allegati etc. ma solo del testo, può essere una soluzione valida e veloce. In questo modo, però, non hai il supporto "code", cosa che tutti gli SMTP server hanno; se il server di posta ti risponde con un temporary reject (es. server che implementa graylist) devi gestirlo via script. Idem per altri eventuali errori/messaggi. Insomma devi sperare che il server di posta ti accetti il messaggio al primo colpo ;)


si si l'esempio postato da te prima l'avevo già provato perchè lo avevo trovato in giro :D

mah in teoria con la ini_set() subito prima di lanciare la funzione mail() si cambia ciò che è scritto nel php.ini quindi il problema è risolto. Mi sembra il metodo più veloce e più efficace,no?:)

Bo speriamo lo testo un po e chissà :D

Grazie a tutti!

yeah

mah in teoria con la ini_set() subito prima di lanciare la funzione mail() si cambia ciò che è scritto nel php.ini quindi il problema è risolto.

Esatto :)


Mi sembra il metodo più veloce e più efficace,no?

Esatto :)

Powered by: vbHome (lite) v4.1 and vBulletin v2.3.1 - Copyright ©2000 - 2002, Jelsoft Enterprises Limited
Mantained by dsy crew (email) | Collabora con noi | Segnalaci un bug | Archive | Regolamento |Licenze | Thanks | Syndacate