• Home
  • Forum
  • Fare Web
  • PHP

invio mail con allegati

  • Creatore Discussione Creatore Discussione giomod
  • Data di inizio Data di inizio 20 Gen 2007
G

giomod

Nuovo Utente
26 Mag 2006
2
0
0
  • 20 Gen 2007
  • #1
Ciao a tutti, premetto che sono un novizio in php quindi scusate se faro' domande per voi banali.

Sto usando un tutorial trovato qui a mrwebmaster, per inviare tramite form delle mail con allegato.
Funziona tutto perfettamente solo che l'allegato, oltre a essere presente come attachment da salvare sul proprio cpu, viene anche visualizzato (come codice binario, credo) nel body della mail. La mail che mi arriva è quindi formata dal msg di testo vero e proprio, un separatore, e poi il listato (a volte chilometrico) dell'allegato.

E' possibile inviare l'allegato senza pero' farlo comparire nel body?

Lo script php è il seguente:

PHP:
// Recupero il valore dei campi del form
$destinatario = $_POST['destinatario'];
$mittente = $_POST['mittente'];
$oggetto = $_POST['oggetto'];
$messaggio = $_POST['messaggio'];

// Valorizzo le variabili relative all'allegato
$allegato = $_FILES['allegato']['tmp_name'];
$allegato_type = $_FILES['allegato']['type'];
$allegato_name = $_FILES['allegato']['name'];

// Creo 2 variabili che riempirò più avanti...
$headers = "From: " . $mittente;
$msg = "";

// Verifico se il file è stato caricato correttamente via HTTP
// In caso affermativo proseguo nel lavoro...
if (is_uploaded_file($allegato))
{
  // Apro e leggo il file allegato
  $file = fopen($allegato,'rb');
  $data = fread($file, filesize($allegato));
  fclose($file);

  // Adatto il file al formato MIME base64 usando base64_encode
  $data = chunk_split(base64_encode($data));

  // Genero il "separatore"
  // Serve per dividere, appunto, le varie parti del messaggio.
  // Nel nostro caso separerà la parte testuale dall'allegato
  $semi_rand = md5(time());
  $mime_boundary = "==Multipart_Boundary_x{$semi_rand}x";
  
  // Aggiungo le intestazioni necessarie per l'allegato
  $headers .= "\nMIME-Version: 1.0\n";
  $headers .= "Content-Type: multipart/mixed;\n";
  $headers .= " boundary=\"{$mime_boundary}\"";

  // Definisco il tipo di messaggio (MIME/multi-part)
  $msg .= "This is a multi-part message in MIME format.\n\n";

  // Metto il separatore
  $msg .= "--{$mime_boundary}\n";

  // Questa è la parte "testuale" del messaggio
  $msg .= "Content-Type: text/plain; charset=\"iso-8859-1\"\n";
  $msg .= "Content-Transfer-Encoding: 7bit\n\n";
  $msg .= $messaggio . "\n\n";

  // Metto il separatore
  $msg .= "--{$mime_boundary}\n";

  // Aggiungo l'allegato al messaggio
  $msg .= "Content-Disposition: attachment;\n";
  $msg .= " filename=\"{$allegato_name}\"\n";
  $msg .= "Content-Transfer-Encoding: base64\n\n";
  $msg .= $data . "\n\n";

  // chiudo con il separatore
  $msg .= "--{$mime_boundary}--\n";
}
else
{
  $msg = $messaggio;
}

// Invio la mail
if (mail($destinatario, $oggetto, $msg, $headers))
{
  echo "<p>Mail inviata con successo!</p>";
}else{
  echo "<p>Errore!</p>";
}

grazie a tutti
 
Devi accedere o registrarti per poter rispondere.

Discussioni simili

Z
PHP.INI - STMP per invio email con PHP
  • z.cristiano
  • 21 Ago 2021
  • Server Dedicati e VPS
Risposte
0
Visite
5K
Server Dedicati e VPS 21 Ago 2021
z.cristiano
Z
Upload multiplo con invio allegati per email
  • Cosina
  • 4 Mar 2021
  • PHP
Risposte
0
Visite
934
PHP 4 Mar 2021
Cosina
R
Invio mail con allegati multipli
  • Riccardo Contu
  • 8 Nov 2020
  • PHP
Risposte
0
Visite
1K
PHP 8 Nov 2020
Riccardo Contu
R
R
Invio mail con allegati da directory
  • Riccardo Contu
  • 22 Set 2020
  • PHP
Risposte
1
Visite
1K
PHP 22 Set 2020
Riccardo Contu
R
G
Invio mail con php da dati prelevati da un database
  • Gioppino
  • 25 Ott 2019
  • PHP
Risposte
9
Visite
2K
PHP 26 Ott 2019
Gioppino
G
Errore invio email con PHP
  • Tommy03
  • 20 Mar 2019
  • PHP
Risposte
1
Visite
1K
PHP 20 Mar 2019
Carnacky79
C
A
[PHP] Problema invio mail con funzione mail()
  • Alex@1983
  • 17 Ago 2018
  • PHP
Risposte
3
Visite
5K
PHP 24 Ago 2018
borgo italia
Invio email con PHP
  • Tommy03
  • 7 Giu 2018
  • PHP
Risposte
3
Visite
1K
PHP 8 Giu 2018
borgo italia
A
[PHP] RISOLTO Invio Mail con Tabella
  • Alex@1983
  • 4 Mag 2018
  • PHP
Risposte
2
Visite
2K
PHP 4 Mag 2018
Alex@1983
A
G
Invio Mail con PHPMailer, problemi SMTP
  • Guest94
  • 3 Ago 2017
  • PHP
Risposte
7
Visite
5K
PHP 8 Ago 2017
stefano78
S
Z
Limite invio newsletter con PHP - mail()
  • z.cristiano
  • 15 Mag 2017
  • PHP
Risposte
4
Visite
2K
PHP 16 Mag 2017
z.cristiano
Z
F
Invio Mail con Javascript
  • franciccio
  • 10 Apr 2017
  • Javascript
  • 2
Risposte
25
Visite
34K
Javascript 13 Apr 2017
franciccio
F
[PHP][WORDPRESS] Form in Wordpress, creazione PDF con dati del form ed invio tramite email
  • Matteo Lorenzon
  • 2 Mar 2017
  • WordPress
Risposte
1
Visite
6K
WordPress 5 Mar 2017
Astrit
Y
INVIO AUTOMATICO EMAIL CON PHP
  • yesno
  • 29 Ott 2016
  • PHP
Risposte
4
Visite
2K
PHP 29 Ott 2016
yesno
Y
P
problemi invio email con phpmailer
  • paperinik4
  • 27 Ago 2016
  • PHP
  • 2 3
Risposte
47
Visite
6K
PHP 31 Ago 2016
paperinik4
P
L
invio smtp con phpmailer - problema invia due volte la email allo stesso utente
  • luigi777
  • 30 Mar 2016
  • PHP
Risposte
0
Visite
2K
PHP 30 Mar 2016
luigi777
L
P
invio mail da form con dati php
  • Paperino78
  • 6 Feb 2016
  • PHP
Risposte
7
Visite
3K
PHP 12 Feb 2016
Paperino78
P
Invio email con dati di una funzione JS
  • Monital
  • 11 Dic 2015
  • PHP
Risposte
1
Visite
1K
PHP 15 Dic 2015
filomeni
S
Form invio mail html, con invio tramite file denominato invio.php
  • Simone Menegoni
  • 7 Ago 2015
  • PHP
Risposte
8
Visite
4K
PHP 14 Ago 2015
Simone Menegoni
S
link cliccabile che non funziona con invio mail
  • asevenx
  • 15 Lug 2015
  • PHP
Risposte
1
Visite
2K
PHP 15 Lug 2015
Night Assassin
N
Condividi:
Facebook X (Twitter) LinkedIn WhatsApp e-mail Condividi Link
  • Home
  • Forum
  • Fare Web
  • PHP
  • Italiano
  • Termini e condizioni d'uso del sito
  • Policy Privacy
  • Aiuto
  • Home
Community platform by XenForo® © 2010-2024 XenForo Ltd. | Traduzione a cura di XenForo Italia
Menu
Accedi

Registrati

  • Home
  • Forum
    • Nuovi Messaggi
    • Cerca...
  • Novità
    • Featured content
    • Nuovi Messaggi
    • Ultime Attività
X

Privacy & Transparency

We use cookies and similar technologies for the following purposes:

  • Personalized ads and content
  • Content measurement and audience insights

Do you accept cookies and these technologies?

X

Privacy & Transparency

We use cookies and similar technologies for the following purposes:

  • Personalized ads and content
  • Content measurement and audience insights

Do you accept cookies and these technologies?