Visualizzazione dei risultati da 1 a 9 su 9
  1. #1

    Invio mail con allegato, partendo dal suo URL, utilizzando phpmailer

    Ciao ragazzi,
    qualcuno riesce a darmi una mano un attimo? Il titolo dice già tutto io ho l'URL di un file e lo devo mandare tramite allegato utilizzando la lib phpmailer, il problema è che facendo:
    Codice PHP:
    $mail = new PHPMailer();
    $mail->ContentType 'text/html';
    $mail->CharSet 'UTF-8';
    $mail->From 'no-reply@miosito.com';
    $mail->FromName 'utente';
    $mail->Subject 'Allegato | test';
    $mail->AddAttachment('http://miosito.com/miofile.pdf');
    $mail->AddAddress('utente@hotmail.it');
    $mail->IsHTML(true);
    $message 'prova allegato';
    $mail->Body $message;
    if (
    $mail->Send()):
        echo 
    "inviato";
    else:
        echo 
    'Errore';
    endif; 
    La mail parte ma non ricevo nessun allegato.

    Tutte le guide che ho trovato inviano allegati da una form il che non mi aiuta.
    Ringrazio anticipatamente quanti vorranno aiutarmi.

  2. #2
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    Non credo si possano inviare/allegare file non preresenti sul tuo server, fai prima upload poi l'invio
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  3. #3
    Utente di HTML.it L'avatar di IAL32
    Registrato dal
    Aug 2011
    Messaggi
    88
    Nella documentazione PHPMailer c'è la descrizione della funzione:
    PHPMailer - AddAttachment
    In pratica lui non può accedere a file esterni, dovrebbe prima scaricarlo. In quel modo tu stai solamente mandando un link(che non è accettato come attachment).

    Se vuoi usare un attachment, o usi un file locale, oppure scarichi il file esterno(sempre se disponibile al dowload)in un file temporaneo, per poi cancellarlo ad invio avvenuto.

    PHP file_get_contents()

    Spero di esserti stato d'aiuto

    Scusami Andrea, ho inviato il post e non mi sono accorto che avevi già scritto ^_^"

  4. #4
    Grazie mille per il supporto.
    ma quindi, ovviamente avendo il file in locale, teoricamente se gli passassi il path:
    Codice PHP:
    $mail->AddAttachment('/Users/utente/Sites/miosito/wp-content/uploads/2013/05/allegato.pdf'); 
    dovrebbe andare? Perchè ho provato anche così ma non va ugualmente.

  5. #5
    Ho trovato il problema, passandogni il path del file in locale funziona solo che evidentemente c'è un limite relativo alla dimensione dell'allegato. Avete idea come poter verificare e, eventualmente, variare questro limite?

  6. #6
    Utente di HTML.it L'avatar di IAL32
    Registrato dal
    Aug 2011
    Messaggi
    88
    Prova a vedere se esiste effettivamente il file, ma per il server.

    PHP file_exists()

    Usa lo stesso URL che hai usato per quel file. E' probabile che la cartella alla quale ti stai riferendo è scritta male, forse dovresti togliere lo slash iniziale, o metterci un punto davanti, oppure cercare di ottenere il path assoluto del server per poi contatenarlo con l'indirizzo del tuo file fino a quando non lo trovi. Vai a tentativi, con gli indirizzi dei file scritti manualmente non si è mai troppo sicuri

    Edit:

    Ho appena letto il tuo commento(stavo scrivendo mentre l'hai postato, ti chiedo scusa :3 )
    Ho controllato, PHPMailer non controlla la dimensione massima dell'attachment, ma controlla solo se il file esiste. E' il server che usa il PHPMailer che controlla la dimensione del file, ed il server del PHPMailer è quello che usa la funzione mail(). Dovresti andare a modificare le impostazioni del tuo server SMTP.

  7. #7
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,501
    Le dimensioni massime dei file allegati penso dipendano dal mailserver, non dalle impostazioni di PHP e PHPMailer.

  8. #8
    Si hai perfettamente raggione dipendono dal message_size_limit del server di posta, il problema ora è che a quanto pare non sia possibile ottenere questo limite tramite php, il che non mi permette di verificare se l'allegato + il contenuto della mail stanno superando o meno tale limite.

    Ma quanto sarebbe bello se uno, o centomila, di voi mi smentisse sparaflesciandomi una funzione php del tipo get_message_size_limit();

  9. #9
    Utente di HTML.it L'avatar di IAL32
    Registrato dal
    Aug 2011
    Messaggi
    88
    Non c'è una funzione apposta, però puoi cercare di inviare un comand al server SMTP, come il comando EHLO(Extended Hello):
    EHLO Verb

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.