Come mai ci siano tutti quei php.ini non lo so. Però ti posso dire che ce n'è anche un altro nella cartella php: se non sbaglio va modificato quello.
Come mai ci siano tutti quei php.ini non lo so. Però ti posso dire che ce n'è anche un altro nella cartella php: se non sbaglio va modificato quello.
Incredibile ma vero: ho modificato il php.ini della cartella conf_files e tutto finalmente funziona: ricevo nella cartella c:\mail il file eml.
Pensi sia necessario modificare anche quello nella cartella php?
(perdonami.. So di non essere ferrato!)
ok!! lascio cosìl'unica cosa importante tanto è che qui in locale possa fare le prove del sito e che quando lo caricherò sullo spazio web funzioni!
Se tutto questo funzionerà non resterà che ringraziare chi ha fatto questo programmino...perchè è veramente l'uovo di colombo per la semplicità di utilizzo.. altro che mail server![]()
Prego, non c'è di che!Originariamente inviato da TNTmarco
Se tutto questo funzionerà non resterà che ringraziare chi ha fatto questo programmino...perchè è veramente l'uovo di colombo per la semplicità di utilizzo.. altro che mail server![]()
![]()
Tuttavia vorrei ricordare che serve solo per delle prove locali (come EasyPHP, daltronde...) e non spedisce effettivamente le email come un server SMTP.
Cmq non so perché ci sono tanti php.ini (credo che siano degli esempi), ma l'UNICO che serve è quello nella cartella PHP.
Infatti se premente il destro sull'icona di EasyPHP a server spento, potrete selezionare nel menu "configura" il php.ini, che è quello che si trova nella cartella PHP di EasyPHP...
Cmq sono inpostazioni di EasyPHP. Quando installi PHP su un vero server lo devi mettere in una cartella presente nel PATH. Io infatti lo mettevo in c:\WINDOWS\ (che è sicuramente nel path...)
Salvatore De Bonis AKA Novice of Ricotta AKA NashCrash
Ciao, ottimo programmino...Originariamente inviato da NoR
Spero di poter omaggiare questo tread col titolo di pillola, altimenti cancellatelo...
Mi sono imbattuto spesso in questo problema: ho EasyPHP o analogo per provare in locale un sito web, ma visto che sono sotto Windows, come provo le email? Il sendmail non esiste.
Ho cercato su questo forum e ho trovato soluzioni estremamente macchinose circa l'uso di Mercury Mail (che tuttavia essendo un server SMTP, la mail le manda davvero...).
Io cercavo qualcosa di più semplice, un programmino che preso lo standard input, generasse un file .eml visibile anche con il buon vecchio Outlook...
Ed ecco il risultato, scritto in C++:
Il compilato (compreso di sorgente) lo trovate in http://www.sitissimo.it/sendmail.zipcodice:#include <stdio.h> #include <string.h> bool isFileExist(char* nomefile) { FILE *stream; if ((stream=fopen(nomefile,"r"))!=NULL) { return true; } else { return false; } } void num2str(int num, char* str) { if (num==0) strcpy(str,"0"); else strcpy(str,""); while (num) { switch (num % 10) { case 0: strcat(str,"0"); break; case 1: strcat(str,"1"); break; case 2: strcat(str,"2"); break; case 3: strcat(str,"3"); break; case 4: strcat(str,"4"); break; case 5: strcat(str,"5"); break; case 6: strcat(str,"6"); break; case 7: strcat(str,"7"); break; case 8: strcat(str,"8"); break; case 9: strcat(str,"9"); break; } num=(int) (num/10); } _strrev(str); } int main(int argc, char* argv[]) { /* sendmail path file Crea dei file al posto delle email. Path è il percorso assoluto della cartella dove mettere i file. Deve esistere. Se non specificato path="C:\". File è il nome del file in cui inviare l'output. I file vengono automaticamente numerati. Se non specificato file="email". p.e. sendmail c:\mails\ mail sendmail c:\mails\ */ // Inizializzo le variabili FILE *stream; char buffer[81]; char nomefile[41]; char stringa[10]; int i=0,ch='a',j=0; bool leggi=true; // Inizializzo gli argomenti switch (argc) { case 1: argv[1]="c:\\"; case 2: argv[2]="email"; } //Preparo il nomefile di output do { strcpy(nomefile,""); strcat(nomefile,argv[1]); strcat(nomefile,argv[2]); num2str(j,stringa); strcat(nomefile,stringa); strcat(nomefile,".eml"); j++; } while (isFileExist(nomefile)); //Apro il file di output if ((stream=fopen(nomefile,"w"))!=NULL) { while (!(((buffer[0]=='.')&&(buffer[1]=='\n'))||(ch == EOF))) { // Prende massimo 80 byte alla volta for(i=0;(i<79)&&((ch = getchar()) != EOF)&&(ch != '\n');i++) { buffer[i] = (char) ch; } buffer[i++] = '\n'; // <= termine di riga // Mette la riga nel file. fwrite(buffer,sizeof(char),i,stream); } fclose(stream); } else { return 1; } return 0; }
Questo sendmail genera email progressive che possono essere comodamente lette...
L'unica modifica da effettuare nel PHP.INI è sostituire:
o similare, concodice:[mail function] ; For Win32 only. SMTP = localhost ; For Win32 only. sendmail_from = me@localhost.com ; For Unix only. You may supply arguments as well (default: "sendmail -t -i"). ;sendmail_path =
dove "c:\mail\" è il percorso di dove avete copiato il "sendmail.exe".codice:[mail function] sendmail_path = c:\mail\sendmail.exe c:\mail\
Semplice, veloce, indolore. Come piace a me!
Spero serva.
due domande,
1. a me i file li scrive nella cartella C:\Programmi\Apache Group\Apache come faccio a cambiare la cartella di destinazione?
2. il messaggio si chiama sempre cemail0.eml cemail1.eml ecc... come posso cambiare il nome in messaggio_0.eml messaggio_1.eml ecc...
3. ti segnalo questa riga: è corretta? argv[1]="c:\\"; o andrebbe argv[1]="c:\";
io non so modificare il file compilato, potresti dirmi come si fa?
grazie mille!
Francesco
1 e 2. Il primo parametro dell'eseguibile è proprio la directory di destinazione delle email, ed il secondo è il nome dei file di messaggio: dunque, supponendo che vuoi mettere l'eseguibile (sendmail.exe) in "c:\programmi", le email in "c:\mail" e vuoi cambiare il nome in "messaggio_0.eml" è sufficiente che nel file PHP.INI scrivi (come ho anche specificato):Originariamente inviato da fmortara
Ciao, ottimo programmino...
due domande,
1. a me i file li scrive nella cartella C:\Programmi\Apache Group\Apache come faccio a cambiare la cartella di destinazione?
2. il messaggio si chiama sempre cemail0.eml cemail1.eml ecc... come posso cambiare il nome in messaggio_0.eml messaggio_1.eml ecc...
3. ti segnalo questa riga: è corretta? argv[1]="c:\\"; o andrebbe argv[1]="c:\";
io non so modificare il file compilato, potresti dirmi come si fa?
grazie mille!
Francesco
Numero progressivo ed estenzione saranno aggiunti automaticamente.codice:sendmail_path = c:\programmi\sendmail.exe c:\mail\ messaggio_
ATTENTO AGLI SPAZI!!!
3. No. Il codice è scritto correttamente: infatti il C++ (e anche il PHP, JAVA, e molti altri linguaggi) la sbarra rovesciata (backslash "\") viene usata nelle stringhe come delimitatore di caratteri speciali (per esempio "\n" manda accapo di una riga, "\t" è la tabulazione) e viene interpretata a seconda del carattere successivo.
Se scrivessi "c:\napoli" verrebbe interpretato come
c:
apoli
cioé come \n come ritorno a capo.
Per ovviare a questa difficoltà si aggiungono due sbarre "\\" che vengono interpretate come una singola sbarra.
Salvatore De Bonis AKA Novice of Ricotta AKA NashCrash
continuo a non capire...Originariamente inviato da NoR
1 e 2. Il primo parametro dell'eseguibile è proprio la directory di destinazione delle email, ed il secondo è il nome dei file di messaggio: dunque, supponendo che vuoi mettere l'eseguibile (sendmail.exe) in "c:\programmi", le email in "c:\mail" e vuoi cambiare il nome in "messaggio_0.eml" è sufficiente che nel file PHP.INI scrivi (come ho anche specificato):
Numero progressivo ed estenzione saranno aggiunti automaticamente.codice:sendmail_path = c:\programmi\sendmail.exe c:\mail\ messaggio_
ATTENTO AGLI SPAZI!!!
3. No. Il codice è scritto correttamente: infatti il C++ (e anche il PHP, JAVA, e molti altri linguaggi) la sbarra rovesciata (backslash "\") viene usata nelle stringhe come delimitatore di caratteri speciali (per esempio "\n" manda accapo di una riga, "\t" è la tabulazione) e viene interpretata a seconda del carattere successivo.
Se scrivessi "c:\napoli" verrebbe interpretato come
c:
apoli
cioé come \n come ritorno a capo.
Per ovviare a questa difficoltà si aggiungono due sbarre "\\" che vengono interpretate come una singola sbarra.
ma io non ho messo in nessun posto il precorso che porta alla cartella di apache...codice:// Inizializzo gli argomenti switch (argc) { case 1: argv[1]="c:\\"; case 2: argv[2]="email"; }
per scrivere la mail in c:\email\msg
come devo scrivere il php.ini?
sendmail_path = c:\programmi\sendmail.exe c:\mail\msg\ messaggio_
cosi va bene??
grazie
Si! così va bene: in questo modo le email verranno messe in "c:\mail\msg\" e si chiameranno messaggio_0.eml, messaggio_1.eml, ...Originariamente inviato da fmortara
continuo a non capire...
ma io non ho messo in nessun posto il precorso che porta alla cartella di apache...codice:// Inizializzo gli argomenti switch (argc) { case 1: argv[1]="c:\\"; case 2: argv[2]="email"; }
per scrivere la mail in c:\email\msg
come devo scrivere il php.ini?
sendmail_path = c:\programmi\sendmail.exe c:\mail\msg\ messaggio_
cosi va bene??
grazie
Per quanto riguarda quello switch, serve per specificare dei parametri di default, nel caso non vengano specificati da riga di comando.
Cmq fai un po' di tentativi e vedrai che non sarà difficile...
Salvatore De Bonis AKA Novice of Ricotta AKA NashCrash
risolto!
avevo scritto:
sendmail_path = c:\programmi\sendmail.exe c;\mail\msg\ messaggio_
e non
sendmail_path = c:\programmi\sendmail.exe c:\mail\msg\ messaggio_
![]()