Grazie mi è risultato molto utile nei test!
Grazie mi è risultato molto utile nei test!
Ma su MAC questa roba non si può ovviamente usare: esiste una roba analoga , cioè un modo per far diventare file le email? Servirebbe per provare roba come newsletter ecccc
Grazie
Purtroppo non ho idea di come compilare il codice per MAC.
Se qualcuno ha un MAC e si intende di C++ non dovrebbe avere alcuna difficoltà a compilare il sorgente.
Colgo l'occasione per postare il sorgente aggiornato (si fa per dire) con la modifica che evita il troncamento all'80-ma colonna.
Ciao a tutti.codice:#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; } if (ch=='\n') buffer[i++] = '\n'; // <= termine di riga // Mette la riga nel file. fwrite(buffer,sizeof(char),i,stream); } fclose(stream); } else { return 1; } return 0; }
Salvatore De Bonis AKA Novice of Ricotta AKA NashCrash
Col MAC ed il C++... magari qualcuno lo sa fare... Grazie mille ciao
Se nel file php uso questo percorso funziona bene
sendmail_path = d:\mail\sendmail.exe d:\mail\email\ messaggio_
se invece uso questo
sendmail_path = "D:\Programmi standalone\xampp\mail\sendmail.exe" "D:\Programmi standalone\xampp\mail\email\" messaggio_
oppure questo, non funziona
sendmail_path = D:\Progra~1\xampp\mail\sendmail.exe D:\Progra~1\xampp\mail\email\ messaggio_
Come mai?
Sarebbe meglio poter integrarlo nella cartella di xampp per un maggior ordine.
Scusa l'ignoranza, ma è parecchio che non mi aggiorno sul PHP: cos'è xampp?Originariamente inviato da samu81
Se nel file php uso questo percorso funziona bene
sendmail_path = d:\mail\sendmail.exe d:\mail\email\ messaggio_
se invece uso questo...
Cmq il problema è dato dal php.ini e dal sistema operativo, che non riesce a lanciare il programma e non dal programma. Tuttavia sono perplesso a proposito di questa tua affermazione:
Non capisco: così dovrebbe funzionare correttamente!Originariamente inviato da samu81
oppure questo, non funziona
sendmail_path = D:\Progra~1\xampp\mail\sendmail.exe D:\Progra~1\xampp\mail\email\ messaggio_
Potresti verificare che "Programmi standalone" sia effettivamente "Progra~1"?
E già che ci sei prova anche con la lettera del driver in minuscolo (non si sa mai con Windows)!
Salvatore De Bonis AKA Novice of Ricotta AKA NashCrash
xampp è un software simile a EasyPHP che simula un ambiente apache-php-mysql
Se provo con
sendmail_path = D:\Progra~1\xampp\mail\sendmail.exe D:\Progra~1\xampp\mail\email\ messaggio_
anche con le lettere tutto in minuscolo,
quando riavvio apache, viene fuori questo errore:
PHP Error
Error parsing D:\Programmi standalone\xampp\apache\bin\php.ini on line 719
forse è il carattere ~ a dare problemi. Boh.
Ho anche verificato che "Progra~1" è effettivamente "Programmi standalone". Lo è.
La sinstassi che racchiude i percorsi con le virgolette invece non capisco perché non funziona.
OK allora non ci puoi fare niente! Il fatto è che il php.ini non supporta le virgolette, né la tilde, perché è fatto per funzionare meglio in ambiente Linux.Originariamente inviato da samu81
PHP Error
Error parsing D:\Programmi standalone\xampp\apache\bin\php.ini on line 719
Prova una delle seguenti (nell'ordine):
sendmail_path = D:\Programmi%20standalone\xampp\mail\sendmail.exe D:\Programmi%20standalone\xampp\mail\email\ messaggio_
sendmail_path = D:/Programmi%20standalone/xampp/mail/sendmail.exe D:/Programmi%20standalone/xampp/mail/email/ messaggio_
sendmail_path = D:/Programmi\ standalone/xampp/mail/sendmail.exe D:/Programmi\ standalone/xampp/mail/email/ messaggio_
sendmail_path = D:\Programmi/ standalone\xampp\mail\sendmail.exe D:\Programmi/ standalone\xampp\mail\email\ messaggio_
Io ora non posso provare, ma se una di queste funziona, fammi sapere: anch'io ti farò sapere se trovo qualcos'altro.
Salvatore De Bonis AKA Novice of Ricotta AKA NashCrash
Niene. Nessuno dei percorsi va bene.
Scorrendo un pò il php.ini ho notato però che altre impostazioni utilizzano i percorsi con le virgolette.
Ad esempio nel mio caso alla linea 509 del php.ini trovo questo codice:
; Temporary directory for HTTP uploaded files (will use system default if not
; specified).
upload_tmp_dir = "D:\Programmi standalone\xampp\tmp"
Forse è il programma sendmail.exe che non riesce ad utilizzare un percorso dove ci sono spazi. Boh...![]()