UPDATE by daniele_dll - 29/12/2009
Ho riscritto il software, ed adesso è presente anche una versione per linux che funziona (quasi) allo stesso modo (ovvero è obbligatorio passare almeno il primo parametro, il percorso).
E' possibile scaricare il compilato per linux in formato statico, cosi da farlo funzionare +/- ovunque, oltre al compilato per windows ed il sorgente, per compilarselo a manina, qui:
http://www.daccii.it/Progetti/DACCII-Sendmail/Downloads
A quest'indirizzo (un post del thread) http://forum.html.it/forum/showthrea...1#post12806101 ci sono ulteriori informazioni utili su come configurarlo correttamente con php
------
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.

Rispondi quotando
