Sintassi per spedire più files in attachment

Raccoglitore di domande e risposte relative a ScriptCase, il generatore di codice php per lo sviluppo rapido di applicazioni.
Regole del forum
Nel forum è vietato fare pubblicità senza avere l'autorizzazione dello staf di Netspecial.
Rispondi
Giovannino
Messaggi: 116
Iscritto il: 06 ott 2014, 08:56

Sintassi per spedire più files in attachment

Messaggio da Giovannino » 31 ott 2019, 14:21

Ciao,
con questo loop riesco a identificare tutti i nomi dei file Document(database) che sono inseriti a bordo di un record (multi upload) .

$query = "SELECT `fld_filename` FROM `tb_documents_active` WHERE `fld_document_id` = [glo_protocollo] ";
sc_lookup(rs_attach, $query);

if (isset({rs_attach[0][0]})) // Row found
{
$r=0;
foreach( {rs_attach} as $values)
{
$namefile = {rs_attach[$r][0]};

$r=$r+1;
$attach_path = [path_file_name] .'/'. $namefile ;
}
}

Ottengo ad es questo (senza a capo riga)
C:\Program Files\NetMake\v9\wwwroot\scriptcase\app\eos_ammin_doc\blank_test_downloaad_blob/TASSE.pdf
C:\Program Files\NetMake\v9\wwwroot\scriptcase\app\eos_ammin_doc\blank_test_downloaad_blob/image.png

Nella macro che invia email abbiamo diversi campi e variabili tra cui
$mail_attachments

Ora se si tratta di un file unico non ci sono problemi ma se ne ho più di uno come vanno insertiti in questa variabile ?
Si mette un separatore tra i due nomi ? Si va a capo ?
filename001.xxx , filename002.yyy , filename003.zzz ???? Con , con ; ?

Si può , non si può, come si fà .... non essendo programmatore faccio un po' fatica ...

Vincenzo
Messaggi: 139
Iscritto il: 11 apr 2014, 11:06

Re: Sintassi per spedire più files in attachment

Messaggio da Vincenzo » 03 nov 2019, 21:12

Ciao,

credo che se usi la macro sc_mail_send, tu non possa inviare più di un file in allegato, se invece utilizzi la macro sc_send_mail_api($arr_settings), allora puoi mettere quanti allegati vuoi, devi solo riempire la struttura in modo opportuno.

Giovannino
Messaggi: 116
Iscritto il: 06 ott 2014, 08:56

Re: Sintassi per spedire più files in attachment

Messaggio da Giovannino » 04 nov 2019, 11:31

Salve Vincenzo,

grazie della dritta !!!
Spero sia una cosa non troppo complicata ...

Sto guardando no link please:.scriptcase.net/tutorials/ema ... api-macro/
ma non vedo campi attachment... o sbaglio ?

Vincenzo
Messaggi: 139
Iscritto il: 11 apr 2014, 11:06

Re: Sintassi per spedire più files in attachment

Messaggio da Vincenzo » 05 nov 2019, 18:41

In quell'esempio non ci sono allegati, anzi, la struttura PHP che viene passata alla macro la riempono le varie funzioni get_settings_* di cui non vedo il codice, in ogni caso prova in giro a vedere qualche esempio di composizione delle api mandrill per inviare mail da mailchimp, hanno usato lo stesso metodo e quindi la stessa struttura di invio email.

Giovannino
Messaggi: 116
Iscritto il: 06 ott 2014, 08:56

Re: Sintassi per spedire più files in attachment

Messaggio da Giovannino » 06 nov 2019, 14:53

Ciao Vincenzo,
sono riuscito (fiumi di sangue ;-) ) a fare tutto il giro creando zip e allegandolo correttamente alla mail.

Ora per finire in ... bellezza il giro stavo cercado di pulire i file che temporaneamente appoggio sul server (loro sono fisicamente nel db) .
Sto studiando l'uso di unlink ... con tutte le prove del caso . No way !!!
Se mail ok poi vorrei cancellare sia i files che lo zip .. Per ora cancella solo il .zip .
Nel 'luppino' lui trova i singoli file inseriti nello zip ma non li cancella. Se fosse problema di permessi non cancelerebbe neanche lo zip quindi non credo serva cmod... boh... io non essendo programmatore arrivo fino ad un certo punto poi mi blocco.
{rs_attach} è l'array dei nomi files allegati. --- [path_file_name] = getcwd() ;

if ({sc_mail_ok})
{
$r1=0;
foreach ({rs_attach} as $file1)
{
$namefile1 = {rs_attach[$r1][0]};
//echo [path_file_name]."/". $namefile1 ;
unlink([path_file_name] ."/". $namefile1 );
$r1=$r1+1;
}
unlink(realpath([path_file_name] .'/'. $zipfilename));

echo "<script>window.alert('Inviata nr {sc_mail_count} e-mail(s) con successo.');</script>";
echo "<script>window.close();</script>";

Grazie

Giovannino
Messaggi: 116
Iscritto il: 06 ott 2014, 08:56

Re: Sintassi per spedire più files in attachment

Messaggio da Giovannino » 06 nov 2019, 14:54

scusa..... realpath l'ho aggiunto ma non provato ancora

Giovannino
Messaggi: 116
Iscritto il: 06 ott 2014, 08:56

Re: Sintassi per spedire più files in attachment

Messaggio da Giovannino » 06 nov 2019, 15:06

appena provato.... non cambia nulla
Zip cancellato e files no...

Giovannino
Messaggi: 116
Iscritto il: 06 ott 2014, 08:56

Re: Sintassi per spedire più files in attachment

Messaggio da Giovannino » 11 nov 2019, 12:00

File singoli .... nada de nada
Zip OK ! Cancella


foreach ({rs_attach} as $file1)
{
$namefile1 = {rs_attach[$r1][0]};
unlink([path_file_name] ."/". $namefile1 );
$r1=$r1+1;
}
unlink([path_file_name] .'/'. $zipfilename));

Mistero .... !!!

Vincenzo
Messaggi: 139
Iscritto il: 11 apr 2014, 11:06

Re: Sintassi per spedire più files in attachment

Messaggio da Vincenzo » 11 nov 2019, 18:44

se rs_attach contiene solo i nomi dei file da cancellare, farei piuttosto

Codice: Seleziona tutto

foreach ({rs_attach} as $file1)
{
	unlink([path_file_name] ."/". $file1 );
}
unlink([path_file_name] .'/'. $zipfilename));
caso mai, la prima volta, fai un echo e non fare unlink nel ciclo, così da essere sicuri di cosa cancelli...

Giovannino
Messaggi: 116
Iscritto il: 06 ott 2014, 08:56

Re: Sintassi per spedire più files in attachment

Messaggio da Giovannino » 13 nov 2019, 10:29

Ciao Vincenzo e grazie della rispo.

provato anche questo e purtroppo non sembra funzioni o probabile sbaglio ancora qualcosa io.
Mi da errore di Array to string...

if ({sc_mail_ok})
{
$query_del = "SELECT `fld_filename` FROM `tb_documents_active` WHERE `fld_document_id` = [glo_protocollo] ";
sc_lookup(rs_del, $query_del);

foreach ({rs_del} as $file1)
{
unlink([path_file_name] .'/'. $file1 );
}
}

La query per un esempio di nr protocollo mi dà come output
01.png
02.png
03.png

Se faccio con

$i=0;
foreach ({rs_del} as $file1)
{
$namefile1 = {rs_del[$i][0]};
unlink([path_file_name] .'/'. $namefile1 );
$i = $i + 1;
}

non mi da errore ma non fa niente... ;-((

Rispondi

Chi c’è in linea

Visitano il forum: Ahrefs [Bot] e 5 ospiti