Invio email con allegati

Gianluca1972

Nuovo Utente
9 Mag 2006
14
0
0
Ciao a tutti,
ho questo scriptino che invia email con allegato: il problema è che l'allegato E' VUOTO :incazz2: , cioè la email che arriva ha in allegato il file che ho mandato, ma con dimensione 0

<?php

error_reporting(E_ALL);

// RENDIAMO LO SCRIPT COMPATIBILE CON LE VERSIONI DI PHP < 4.1.0
if(!isset($_POST)) $_POST = $HTTP_POST_VARS;
if(!isset($_FILES)) $_FILES = $HTTP_POST_FILES;

// RIPULIAMO I VARI CAMPI DEL MODULO
$Soggetto = trim(stripslashes($_POST["Soggetto"]));
$Mail = trim($_POST["Mail"]);
$Contenuto = trim(stripslashes($_POST["Contenuto"]));

$MailFromAddress = "Mail";

// ASSEGNIAMO A VARIABILI PIU' LEGGIBILI, LE PROPRIETA' DELL'ALLEGATO
$attach = $_FILES["allegato"]["tmp_name"];
$file_name = $_FILES["allegato"]["name"];
$file_type = $_FILES["allegato"]["type"];
$file_size = $_FILES["allegato"]["size"];

// DELIMITATORE
$boundary = md5(uniqid(microtime()));

// APRIAMO L'ALLEGATO PER LEGGERLO E CODIFICARLO
$file = @fopen($attach, "r");
$contents = @fread($file, $file_size);
$encoded_attach = chunk_split(base64_encode($contents));
@fclose($file);

// INTESTAZIONI DELLA MAIL
$mail_headers = '';
$mail_headers .= "MIME-version: 1.0\n";
$mail_headers .= "Content-type: multipart/mixed; boundary=\"$boundary\"";
$mail_headers .= "X-attachments: $file_name\n";
$mail_headers .= "From: $Mail\r\n";

// COSTRUIAMO IL CORPO DELLA MAIL
$mail_body = "Content-disposition: attachment; filename =\"$file_name\"\n\n";
$mail_body = "--$boundary\n";
$mail_body .= "Content-Type: text/plain; charset=us-ascii\n";
$mail_body .= "Content-Transfer-Encoding: 7bit\n\n";
$mail_body .= "Contenuto: $Contenuto\n\n";
$mail_body .= "Soggetto: $Soggetto\n\n";
$mail_body .= "--$boundary\n";
$mail_body .= "Content-type: $file_type; name=\"$file_name\"\n";
$mail_body .= "Content-Transfer-Encoding: base64\n";
$mail_body .= "$encoded_attach\n";
$mail_body .= "--$boundary--\n";

// INVIO DELLA MAIL
if(@mail("[email protected]", $Soggetto, $mail_body, $mail_headers)) { // SE L'INVIO E' ANDATO A BUON FINE...

echo "<p>La mail è stata inoltrata con successo.</p>";

} else { // ALTRIMENTI...

echo "<p>Si sono verificati dei problemi nell'invio della mail.</p>";

}

?>


Che ci date un'occhio per favore ????!!!!
THANKS
 

Gianluca1972

Nuovo Utente
9 Mag 2006
14
0
0
usate PHPmailer, non complicatevi la vita con la funzione mail()

Il tuo sarà indubbiamente un ottimo suggerimento, tuttavia mi ci vorrebbero dei giorni a capire come usare phpmailer (purtroppo ho fretta e sono un principiante con il php), mentre spererei che per risolvere il problema sullo script che ho postato ci voglia molto meno, se mi date una mano....
Grazie ancora
 

Eliox

Utente Attivo
25 Feb 2005
4.390
3
0
In realtà PHPmailer è pronta all'uso, è stata concepita proprio per coloro che non vogliono incasinarsi con mail() e sanno poco di PHP, 2 minuti d'installazione e mandi ogni tipo di mail.

Per quanto riguarda il tuo problema usa il codice di questo tutorial, è praticamente identico al tuo ma è testato e funziona.

Poi non utilizzare error_reporting(E_ALL), rischi di non sapere se qualche variabile non viene definita.

Non usare variabili come $HTTP_POST_VARS e $HTTP_POST_FILES, $_POST e $_FILES sono già globali.
 

Gianluca1972

Nuovo Utente
9 Mag 2006
14
0
0
invio email - errori con script

Ho provato quello che mi hai dato e mi da i seguenti errori:

Warning: fopen(): open_basedir restriction in effect. File(/tmp/phpLfvaxm) is not within the allowed path(s): (/home/sergio/html/www.dominiodiprova.com/html/) in /home/sergio/html/www.dominiodiprova.com/html/prova/procedura/invia.php on line 17

Warning: fopen(/tmp/phpLfvaxm): failed to open stream: Operation not permitted in /home/sergio/html/www.dominiodiprova.com/html/prova/procedura/invia.php on line 17

Warning: filesize(): open_basedir restriction in effect. File(/tmp/phpLfvaxm) is not within the allowed path(s): (/home/sergio/html/www.dominiodiprova.com/html/) in /home/sergio/html/www.dominiodiprova.com/html/prova/procedura/invia.php on line 18

Warning: fread(): supplied argument is not a valid stream resource in /home/sergio/html/www.dominiodiprova.com/html/prova/procedura/invia.php on line 18

Warning: fclose(): supplied argument is not a valid stream resource in /home/sergio/html/www.dominiodiprova.com/html/prova/procedura/invia.php on line 19
Messaggio inviato con successo.


"Messaggio inviato con successo" ... si grazie, ma con l'allegato a 0 byte

La linea 17 corrisponde a:

$file = fopen($attachment,'rb');


Che ne dici? (abbi pazienza...)
Grazie. Gianluca.
 

Eliox

Utente Attivo
25 Feb 2005
4.390
3
0
Purtroppo sembra che tu non possa effettuare upload nella cartella temp, credo manchino i permessi.
Dovresti rivolgerti all'admin del tuo hosting e segnalare il problema.
 
Discussioni simili
Autore Titolo Forum Risposte Data
Z PHP.INI - STMP per invio email con PHP Server Dedicati e VPS 0
Cosina Upload multiplo con invio allegati per email PHP 0
Tommy03 Errore invio email con PHP PHP 1
Tommy03 Invio email con PHP PHP 3
Matteo Lorenzon [PHP][WORDPRESS] Form in Wordpress, creazione PDF con dati del form ed invio tramite email WordPress 1
Y INVIO AUTOMATICO EMAIL CON PHP PHP 4
P problemi invio email con phpmailer PHP 47
L invio smtp con phpmailer - problema invia due volte la email allo stesso utente PHP 0
Monital Invio email con dati di una funzione JS PHP 1
S creazione test con invio risposta a una email prescelta PHP 4
A invio email con immagine inline senza clips PHP 0
R invio email php con allegato PHP 1
P Problemi con phpmail ed invio email PHP 0
A problema con l'invio della password tramite email PHP 23
M invio email con più di un allegato PHP 1
L Invio di una doppia email con CDO Classic ASP 2
asevenx errore durante l'invio di email con CDONTS Classic ASP 8
andreas88 invio email con ASP Classic ASP 1
L Aiuto con form invio email PHP 2
I invio email con POP Web Server 2
M invio email con php PHP 1
G Script php per invio email con controllo sintassi e record MX PHP 0
G Script php per invio email con controllo sintassi e record MX PHP 7
G Problemi con l'invio email da un host remoto PHP 2
V problemi con invio email in formato html PHP 1
G invio email con cdonts? Classic ASP 2
M Invio dati database via email php PHP 0
M Invio di email PHP 0
S Invio email da form PHP 8
max1974 Invio email PHP 12
F Estrazione Email di persone selezionate e attive / facebook + invio di massa! Annunci servizi di Social Media Marketing 0
ANDREA20 [PHP] Modulo email invio PHP 5
C [PHP] Problema Invio Email Elseif PHP 2
bubino8 [WordPress] Invio email da sito WordPress 2
A [PHP] Invio email quando viene visitata una pagina PHP 7
L Settaggio parametri per invio email Ip Cam Sricam IP Cam e Videosorveglianza 13
B MYSQL-INVIO EMAIL O MESSAGGIO AVVISO MySQL 0
R PROBLEMA INVIO EMAIL AL CAMBIO DI STATO ORDINE E-Commerce 1
ANDREA20 [MySQL] [PHP] Invio email ordine MySQL 12
ANDREA20 [PHP] Non riesco ad impostare reset password invio via email PHP 6
ANDREA20 [PHP] Invio ordine via email PHP 14
A Invio Email alla connessione di un Client su Lan Reti LAN e Wireless 2
B Invio email multiple PHPMAILER PHP 3
asevenx problema invio email tramite form PHP 3
Y Invio email automatico database background Database 1
J Scritp invio email convalida indirizzo PHP 13
A invio email dove sbaglio PHP 1
Task Mc Problema form invio email da sito ç__ç PHP 4
Z Invio email PHP 6
J while dentro while per invio email blocchi PHP 0

Discussioni simili