Pagina 1 di 1

Allegato alla mail

Inviato: 11/06/2008, 16:25
da atanet
Ciao, sto sviluppando uno script integrativo, e devo poter allegare un file alla mail. Che codice php devo mettere per poterlo fare? Non riesco a trovare nessuna info.
Grazie mille.

Inviato: 11/06/2008, 22:06
da Spiderweb
Ciao,
esiste una contribution che ti fa allegare un file alla mail di corferma dell'ordine, adesso però non ce l'ho sottomano e sinceramente non mi ricordo come si chiama :roll:

Prova a fare una ricerca sul sito oscommerce.com con la parola mail attach o qualcosa di simile, vedi se la trovi.

Ti dico già che al tempo che l'ho provata io non mi funzionava, magari adesso è uscita una nuova versione.

Ciao

Inviato: 12/06/2008, 8:07
da atanet
Ciao, non ho trovato nulla sul sito, ma in compenso ho trovato il modo di allegare i file, anche se ci sono errori nella classe mime, e nella funzione tep_mail. Ma c'è un piccolo problema, gli allegati inviati ad un account di gmail funzionano benissimo, invece gli allegati inviati ad altri account non si aprono. Gli allegato sono file pdf, e sembra che verso altri account diversi da gmail alcune volte al file pdf manca come prima riga -PDF... ed altro codice, e alcune volte mette il percorso di dove si trova il file pdf nel server. Questa cosa mi convince poco, ma ho fatto diversi tentativi, con diversi account e in tutti c'è sempre il solito problema. Ho controllato le intestazioni della mail che arriva, e non sono delle migliori, mancano dei pezzi.
E' probabile che quando lo avevi provate te c'erano gli stessi problemi del mio.

Inviato: 14/06/2008, 17:20
da Spiderweb
Ora che mi ci fai pensare forse hai ragione nel senso che non era una contribution ma una cosa trovata su un post del forum, almeno mi sembra.
Cmq si, non funzionava.... se trovo la discussione la posto perchè sarebbe utile riaprirla perchè può tornare utile.
Infatti io a suo tempo volevo mettere come allegato alla mail dell'ordine un file doc (o pdf) contentente il diritto di recesso, la privacy ecc...

Eccola, trovata:

viewtopic.php?t=2085&highlight=allegato+mail

Come si legge l'ultimo messaggio era il mio e dicevo che a me arrivava solo il file allegato ma senza il testo della mail... però l'utente precedente diceva che gli funzionava :roll:

A suo tempo avevo anche aperto una nuova discussione per vedere se qualcuno aveva risolto il problema ma non ha risposto nessuno.

Inviato: 16/06/2008, 7:25
da atanet
Io ho risolto il problema, ma non ho utilizzato il metodo di os-commerce per inviare la mail. HO riscritto il codice, ed ho messo le intestazioni corrette, ed ora è tutto funzionante.
Il problema stava nel fatto che le intestazioni che crea os.commerce sono errate, quindi l'allegato non viene decodificato correttamente.

Inviato: 16/06/2008, 11:00
da hsg26
atanet ha scritto:Io ho risolto il problema, ma non ho utilizzato il metodo di os-commerce per inviare la mail. HO riscritto il codice, ed ho messo le intestazioni corrette, ed ora è tutto funzionante.
Il problema stava nel fatto che le intestazioni che crea os.commerce sono errate, quindi l'allegato non viene decodificato correttamente.
Puoi descrivere in modo dettagliato cosa hai fatto? Potrebbe interessare ad altri.

Ti ringrazio. :)

Inviato: 16/06/2008, 13:00
da atanet
Ho utilizzato questo codice

Codice: Seleziona tutto

$intestazioni = "From: my@mail\n";
$intestazioni.="Replay-to:my@mail\n";
$intestazioni.="X-Mailer: OS-Commerce\nMIME-version: 1.0\nContent-type: multipart/mixed;";
$intestazioni.="\n boundary=\"Message-Boundary\"";
$intestazioni.="\nContent-transfer-encoding: 7BIT\nX-attachments: file.pdf";
$msg_body = $testo_mail;
$f=fopen($myFile,'r');
$contenuto=fread($f,filesize($myFile));
$enco_att=chunk_split(base64_encode($contenuto));
fclose($f);
$msg_body .= "\n\n--Message-Boundary\n";
$msg_body .= "Content-type: ".mime_content_type($myFile)."; name=\"file.pdf\n";
$msg_body .= "Content-Transfer-Encoding: BASE64\n";
$msg_body .= "Content-disposition: attachment; filename=\"file.pdf\"\n\n";
$msg_body .= "$enco_att\n";
$msg_body .= "--Message-Boundary--\n";

mail($mail_dest,'oggetto',$msg_body,$intestazioni);

Inviato: 19/06/2008, 22:08
da Spiderweb
Ti ringrazio anche io! :wink:

Appena ho tempo provo a fare quelle modifiche perchè mi tornano utili.