joomla: invio allegati

Ho apportato delle modifiche al modulo contatti di Joomla per inviare email. Nel corpo del modulo contatti ho aggiunto il classico "sfoglia":

<input type="file" size="24" name="attachement" class="inputbox" />

Che richiamo attraverso il metodo POST:

$attachement= mosGetParam( $_POST, 'attachement', '' );

che per chi nn conosce Joomla, estrae la variabile $_POST["attachement"] e se questa non è definita la pone a "".

L'invio avviene attraverso un metodo:

mosMail( $mosConfig_mailfrom, $mosConfig_fromname, $email, $copy_subject, $copy_text, 0, null, null, $attachement );

Ora volevo sapere, è sufficiente aggiungere $attachement (che contiene il percorso locale del file allegato) per far riferimento al file o bisogna fare altro? Infatti l'invio dei file:

  • in locale avviene ma senza i risultati cercati (i file.txt non mantengono lo stesso set di caratteri, altri file non vengono aperti!!);
  • in remoto non viene effettuato neanche l'invio!

Chi sa parli!!  :'(

 :bye:

inviato 10 anni fa
Nico Colonna
X 0 X

Per essere più chiaro:

1.problema invio: è necessario specificare qualcos'altro oltre al percorso del file?

2.problema locale/remoto: ho un hostin linux (devo forse abilitare qualcosa??).

Grazie

 :bye:

risposto 10 anni fa
Nico Colonna
X 0 X

Ciao fred, a parte suggerirti di controllare i permessi ed il PATH dei file, non mi sovviene nulla  :dunno:

Il problema si verifica con diversi indirizzi email?

risposto 10 anni fa
Gianni Tomasicchio
X 0 X

Provo a buttarla lì, perchè alcune volte l'invio degli allegati da problemi a causa del tipo di header_addizionali

mail ( string a, string oggetto, string messaggio [, string header_addizionali [, string parametri_addizionali]] )

Adesso, io non ho mai usato Joomla, ma ci sarà da qualche parte la funzione mail penso...

Prova a guardare :

http://it2.php.net/manual/it/function.mail.php

gli esempi che fa con gli attachment i parametri che vengono messi, magari il problema sta lì...

Ripeto, non avendolo mai usato, ho provato a buttarla lì a seconda dei problemi che ho potuto riscontrare finora...

Ciao

Lore

risposto 10 anni fa
Lore
Lore
1
X 0 X

Allora, vi posto i miei progressi (o regressi!). A quanto pare l'utilizzo del campo <input type="file"...> prevede nella dichiarazione del form la clausola enctype="multipart/form-data".

Così facendo, però, in locale non mi viene neanche spedito l'allegato taroccato. Deduco pertanto che ci sarà un problema nella definizione dell'header addizionale (ovvero del MIME Type), così come prontamente segnalato da Lore.

Per cui, se qualcuno arriva prima di me alla soluzione (scoprire quale intestazione assegnare all'email quando in allegato c'è un file .zip, o .doc) me lo faccia sapere.  O0

Grazie

 :bye:

risposto 10 anni fa
Nico Colonna
X 0 X

Prova a dare un'occhiata a questo thread:

http://forum.html.it/forum/showthread.php?s=&threadid=513009&highlight=allegati+mail

o

http://freephp.html.it/articoli/view_articolo.asp?id=70&pag=4

magari trovi qualcosa che ti possa interessare, comunque, prova a postare gli header che venogno impostati nel tuo script...

ciao

Lore

risposto 10 anni fa
Lore
Lore
1
X 0 X

Hai provato a vedere come funziona mosmail? Magari il problema è lì. Prova anche a scrivere sul forum degli sviluppatori di Joomla.

 :bye:

risposto 10 anni fa
Gianni Tomasicchio
X 0 X

Allora ragazzi, questi gli ultimi progressi:

1.Da tutte le ricerche che ho fatto su Internet è necessario specificare nella dichiarazione del form la clausola enctype="multipart/form-data" quando si usa un input di tipo file.

2.La funzione mosmail richiama, alla fine della fiera la classe phpmailer, in particolare il metodo AddAttachement nella forma:

if ($attachment) {
      if ( is_array($attachment) )
         foreach ($attachment as $fname) $mail->AddAttachment($fname);
      else
         $mail->AddAttachment($attachment);
   } // if

Di qui la domanda, $attachment (che io passo come parametro) deve essere l'array file ottenuto così (dopo l'invio tramite POST del metodo):

$attachment = $_FILES["allegato"];

(dove allegato è il name dell'input di tipo file)

oppure il nome del file temporaneo:

$attachment = $_FILES["allegato"]["tmp_name"];

o che altro?

 :bye:

risposto 10 anni fa
Nico Colonna
X 0 X

In rete ho trovato questo:

http://phpmailer.sourceforge.net/tutorial.html

 (guarda nella sezione File Attachments)

ma sopratutto questo:

http://phpmailer.sourceforge.net/extending.html

la riga interresata è:

$mail->AddAttachment("c:/temp/11-10-00.zip", "new_name.zip");  // optional name

Il succo del discorso è che solo il primo parametro è obbligatorio, e dovrebbe essere, come hai segnalato tu,il tmp_name del file:

$_FILES['allegato']['tmp_name']

CMQ per sicurezza afi una prova...

ciao

Lore

risposto 10 anni fa
Lore
Lore
1
X 0 X

Niente da fare!!  :'(

Con l'istruzione

AddAttachment($_FILES['allegato']['tmp_name']);

mi arriva il file con estensione .tmp. Mentre se scrivo:

AddAttachment($_FILES['allegato']['tmp_name'],$_FILES['allegato']['name']);

arriva il file corretto (stesso nome e tipo dell'originale, apparentemente con la stessa codifica di quando lo mando direttamente con outlook, base64) ma è illeggibile dal programma di appartenenza (word o winzip che sia).

Che sarà mai??  :o Mistero  :o

risposto 10 anni fa
Nico Colonna
X 0 X

Hai provato ad inviare un file di testo semplice? Cosa ricevi?

risposto 10 anni fa
Gianni Tomasicchio
X 0 X

Oltre un certo numero di righe corrette cominciano i caratteri strani. Ho notato che se mi mantengo sotto i 400 byte il testo è corretto. Dipenderà da questo? O è solo un caso?

risposto 10 anni fa
Nico Colonna
X 0 X

Prova ad inviare in allegato un file presente sul server, senza effettuarne l'upload. Stesso problema?

risposto 10 anni fa
Gianni Tomasicchio
X 0 X

Ciao Gianni,

tutti gli esperimenti che ho fatto finora sono in locale. Comunque proverò ad inviare un file sul server. Devo specificare il percorso, giusto?

risposto 10 anni fa
Nico Colonna
X 0 X

Niente da fare, ho provato a specificare un percorso locale ed un percorso con riferimento alla cartella www. In ogni caso nada (stesso problema di incomprensibilità del file zip)!!

 :bye:

risposto 10 anni fa
Nico Colonna
X 0 X
Effettua l'accesso o registrati per rispondere a questa domanda