Newsgroup: it.comp.www.php
Titolo: linux > windows parte seconda

ora l'attachment va'!! quasi...
una volta salvato da outlook le prime cinque righe spariscono
(misteriosamente per me)...
riassunto della puntata precedente:
sto facendo uno script che invia sotto forma di attachment (dif, data
interchange format) e sotto forma di testo il contentuto di un form.
il dif lo creo cosi':
$message = "TABLE
0,1
\"curriculum\"
VECTORS
0,24
\"\"
TUPLES
0,2
\"\"
DATA
1,0
\"\"
-1,0
BOT
1,0
ecc.ecc.
$message2 = "i dati in formato testo";
lo script che invia la mail e' adesso cosi' (siamo su server windows
Microsoft-IIS/5.0 )
$boundary = strtoupper(md5(uniqid(time())));
$mail_header  = "From:$from";
$mail_header .= "\nMIME-Version: 1.0";
$mail_header .= "\nContent-Type: multipart/mixed; boundary=$boundary";
$mail_header .= "\n\nThis is a multi-part message in MIME format";
$mail_header .= "\n--$boundary";
$mail_header .= "\nContent-Type: text/plain; charset=\"iso-8859-1\"";
$mail_header .= "\nContent-Transfer-Encoding: 7bit";
$mail_header .= "\n\n$message2";
$file_content = chunk_split(base64_encode($message));
$mail_header .= "\n--$boundary";
$mail_header .= "\nContent-Type: application/x-excel; name=\"$file_name\"";
$mail_header .= "\nContent-Transfer-Encoding: base64";
$mail_header .= "\nContent-Disposition: attachment";
$mail_header .= "\n\n$file_content";
$mail_header .= "\n--$boundary--";
mail($to,$subject,"",$mail_header);
il file arriva ma aprendolo e' corrotto...
ho fatto tutte le prove possibili ma non ne vengo a capo e lo script lo
dovevo consegnare l'altroieri.. ahio
qualche idea? (escluso usare classi già confezionate)

 qualche idea? (escluso usare classi gi` confezionate)
Per quale motivo non vuoi utilizzare classi gia' confezionate? Ce ne
sono svariate e valide per fare quello che cerchi di fare.
-- 
I am what I am, I do what I can
Sei un newbie? Leggi questo 
http://url.repository.biz/go/1
Inviare email con allegati? 
http://url.repository.biz/go/x

chiarisco meglio (ho fatto un file di prova con il minimo indispensabile)
sia l'attachment che il corpo della mail mi giungono incompleti....
<?
$message = "PHP provides a large number of predefined variables to any
script which it runs. Many of these variables, however, cannot be fully
documented as they are dependent upon which server is running, the version
and setup of the server, and other factors. Some of these variables will not
be available when PHP is run on the command line.   For a listing of these
variables, please see the section on Reserved Predefined Variables. PHP
provides a large number of predefined variables to any script which it runs.
Many of these variables, however, cannot be fully documented as they are
dependent upon which server is running, the version and setup of the server,
and other factors. Some of these variables will not be available when PHP is
run on the command line. For a listing of these variables, please see the
section on Reserved Predefined Variables.";
$message2 ="xxxx
prova di invio dif
ciao
";
$file_name = "prova.dif";
$subject = "prova invio dif";
$from = "mauro prova";
$to = "
ma...@axxxxxi.it
";
$boundary = strtoupper(md5(uniqid(time())));
$mail_header  = "From:$from";
$mail_header .= "\r\nMIME-Version: 1.0";
$mail_header .= "\r\nContent-Type: multipart/mixed; boundary=$boundary";
$mail_header .= "\r\n\r\nThis is a multi-part message in MIME format";
$mail_header .= "\r\n--$boundary";
$mail_header .= "\r\nContent-Type: text/plain; charset=\"iso-8859-1\"";
$mail_header .= "\r\nContent-Transfer-Encoding: 7bit";
$mail_header .= "\r\n\r\n$message2";
$file_content = chunk_split(base64_encode($message));
$mail_header .= "\r\n--$boundary";
$mail_header .= "\r\nContent-Type: application/x-excel;
name=\"$file_name\"";
$mail_header .= "\r\nContent-Transfer-Encoding: base64";
$mail_header .= "\r\nContent-Disposition: attachment;
filename=\"$file_name\"";
$mail_header .= "\r\n\r\n$file_content";
$mail_header .= "\r\n--$boundary--";
mail($to,$subject,"",$mail_header);
?>
da i seguenti risultati:
nel corpo della mail:
[corpo]
prova di invio dif
ciao
[/corpo]
nell'attachment:
[attach]
y script which it runs. Many of these variables, however, cannot be fully
documented as they are dependent upon which server is running, the version
and setup of the server, and other factors. Some of these variables will not
be available when PHP is run on the command line.   For a listing of these
variables, please see the section on Reserved Predefined Variables. PHP
provides a large number of predefined variables to any script which it runs.
Many of these variables, however, cannot be fully documented as they are
dependent upon which server is running, the version and setup of the server,
and other factors. Some of these variables will not be available when PHP is
run on the command line. For a listing of these variables, please see the
section on Reserved Predefined Variables.
[/attach]
la sorgente del messaggio e':
[messaggio]
[snip]
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary=E8A0EB9657C9896E4FDCFBB8C79B5126
Status:
--E8A0EB9657C9896E4FDCFBB8C79B5126
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: 7bit
prova di invio dif
ciao
--E8A0EB9657C9896E4FDCFBB8C79B5126
Content-Type: application/x-excel; name="prova.dif"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="prova.dif"
eSBzY3JpcHQgd2hpY2ggaXQgcnVucy4gTWFueSBvZiB0aGVzZSB2YXJpYWJsZXMsIGhvd2V2ZXIs
IGNhbm5vdCBiZSBmdWxseSBkb2N1bWVudGVkIGFzIHRoZXkgYXJlIGRlcGVuZGVudCB1cG9uIHdo
aWNoIHNlcnZlciBpcyBydW5uaW5nLCB0aGUgdmVyc2lvbiBhbmQgc2V0dXAgb2YgdGhlIHNlcnZl
ciwgYW5kIG90aGVyIGZhY3RvcnMuIFNvbWUgb2YgdGhlc2UgdmFyaWFibGVzIHdpbGwgbm90IGJl
IGF2YWlsYWJsZSB3aGVuIFBIUCBpcyBydW4gb24gdGhlIGNvbW1hbmQgbGluZS4gICBGb3IgYSBs
aXN0aW5nIG9mIHRoZXNlIHZhcmlhYmxlcywgcGxlYXNlIHNlZSB0aGUgc2VjdGlvbiBvbiBSZXNl
cnZlZCBQcmVkZWZpbmVkIFZhcmlhYmxlcy4gUEhQIHByb3ZpZGVzIGEgbGFyZ2UgbnVtYmVyIG9m
IHByZWRlZmluZWQgdmFyaWFibGVzIHRvIGFueSBzY3JpcHQgd2hpY2ggaXQgcnVucy4gTWFueSBv
ZiB0aGVzZSB2YXJpYWJsZXMsIGhvd2V2ZXIsIGNhbm5vdCBiZSBmdWxseSBkb2N1bWVudGVkIGFz
IHRoZXkgYXJlIGRlcGVuZGVudCB1cG9uIHdoaWNoIHNlcnZlciBpcyBydW5uaW5nLCB0aGUgdmVy
c2lvbiBhbmQgc2V0dXAgb2YgdGhlIHNlcnZlciwgYW5kIG90aGVyIGZhY3RvcnMuIFNvbWUgb2Yg
dGhlc2UgdmFyaWFibGVzIHdpbGwgbm90IGJlIGF2YWlsYWJsZSB3aGVuIFBIUCBpcyBydW4gb24g
dGhlIGNvbW1hbmQgbGluZS4gRm9yIGEgbGlzdGluZyBvZiB0aGVzZSB2YXJpYWJsZXMsIHBsZWFz
ZSBzZWUgdGhlIHNlY3Rpb24gb24gUmVzZXJ2ZWQgUHJlZGVmaW5lZCBWYXJpYWJsZXMu
--E8A0EB9657C9896E4FDCFBB8C79B5126--
[/messaggio]

perchè sto imparando e voglio farcela da solo (si fa per dire visto che ho
postato qui)... :)
perchè sono solo poche fottute righe di codice e su linux funzionano e su
windows no e mi piacerebbe sapere perche'... :(
grazie
sarà una stupidata come al solito ma non riesco a vederla...
"Setec Astronomy" <setec@_NO_NOSPAM_freemail.it> ha scritto nel messaggio
news:QFwNb.253762$vO5.10...@twister1.libero.it...



Bah io credo che imparare a programmare oggi significhi anche saper usare il
codice fatto da altri.... cmq
ancora non capisco come mai invii un file .DIF come application/excel ...
che senso ha inviare quel MIME type... a me inizia a puzzare di lamerata.
Verň č che puoi importare/esportare dati in DIF, ma di certo non č un
application/excel
Altra cosa... mi sembra che il tuo post, oramai, non riguardi piů la
programmazione Php ma riguarda l'implementazione della RFC per l'invio della
posta.
Infatti non č richiesto, dal tuo post, alcuna conoscenza del php ma
unicamente della rfc dell'invio di email.
Il fatto che linux e windows si comportino in modo diverso, non credo che
riguardi il php ma sempre la RFC.
Dato che non č uno step particolarmente immediato, ti consiglio di non
perdere ulteriore tempo (se dovevi consegnare qualcosa, non credo che sia
serio fare
ritardo solo per sfida. Prima si consegna, poi si prova a cavarsela da sč) e
proseguire dopo aver approfondito la Request For Comments.
Ciao
J

";
Non le fare, queste cose :-)
Indica esplicitamente i ritorni riga usando \r\n o \n (e gia' questo
ti risolve il 99% dei problemi), su una sola riga.
$message2 = "xxx\r\nProva di invio dif\r\nciao\r\n";
Inoltre, fra header e body della mail ci DEVE essere una riga vuota,
altrimenti trovi le prime righe di body negli header... e ti domandi
com'e' che la mail ti arriva dalla n-esima riga in poi.
E stessa cosa per gli attachment (ogni parte del multipart ha i suoi
header...)
Leonardo
-- 
Time's angles, mages tell, conceal a place
incredible, beyond the mundane mind;
night-shrouded and between the seas of space
dread creatures drift in the ageless winds.