Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 14

Discussione: invio mail php

  1. #1

    invio mail php

    Salve a tutti!

    Ho un problema con l'invio di mail da php.
    Anzitutto: l'email viene mandata da un utente qualsiasi all'amministratore del sito.

    Avevo implementato questo script, che non funzionava (nel senso che non arriva alcuna mail):

    Codice PHP:
    //reperisco i dati
    $mail="michela.brioni@tele2.it";
    $mitt=$_POST['mail'];
    $nome=$_POST['nome'];
    $ind=$_POST['ind'];
    $cap=$_POST['cap'];
    $citta=$_POST['citta'];
    $prov=$_POST['prov'];
    $tel=$_POST['tel'];
    $ord=$_POST['ordine'];
    $intest=$_POST['intest'];
    $mex=$_POST['mex'];
    $note=$_POST['note'];
    $risp=$_POST['risp'];
    switch (
    $risp
    {
      case 
    "risp1":
        
    $pagam="PayPal o Carta di credito";
        break;
      case 
    "risp2":
        
    $pagam="Via posta";
        break;
    }
    //creo il messaggio
    $testo "ORDINE: $ord
              NOME E COGNOME: 
    $nome
              INDIRIZZO: 
    $ind
              CAP: 
    $cap
              CITTA': 
    $citta
              PROVINCIA: 
    $prov
              TELEFONO: 
    $tel
              MAIL: 
    $mitt
              INTESTAZIONE: 
    $intest
              MESSAGGIO: 
    $mex
              NOTE: 
    $note
              PAGAMENTO: 
    $pagam
              "
    ;
    $oggetto="Ordine";
          
    $dest=$mail;
          
    $intestazioni"From: $mitt\n";
          
    $intestazioni .= "Reply-To: \n";
          
    $intestazioni .= "X-Mailer: PHP/".phpversion()."\n\n";
    //invio l'email
          
    mail($dest,$oggetto,$testo,$intestazioni); 
    Visto il non funzionamento ho provato, dopo aver installato PHPMailEnginer in una sottodirectory della mia root, con questo script:
    Codice PHP:
    require_once("../PHPMailer/class.phpmailer.php");

    $mail = new PHPMailer();
    $mail->From     "";
    $mail->FromName "";
    $mail->AddAddress("michela.brioni@tele2.it");
    $mail->IsHTML(true);  
    $mail->Subject  =  $oggetto;
    $mail->Body     =  $testo;
    $mail->AltBody  =  $testo;
    if(!
    $mail->Send()){
        echo 
    "Si è verificato un errore nell'invio della mail";
    }else{
        echo 
    "Mail inviata con successo";

    Pur dandomi il messaggio "Mail inviata con successo", la mail non giunge mai a destinazione!


    Qualcuno mi può aiutare?

    Grazie!
    Michela

  2. #2
    sei in locale? e se sì, hai configurato correttamente il php.ini?
    PHP LEARN - Guide, tutorial e articoli sempre aggiornati
    NUOVO: standardLib; il potente framework PHP é ora disponibile
    *******************************************
    Scarica oggi la tua copia di MtxEventManager

  3. #3
    sono su server

  4. #4
    Utente di HTML.it L'avatar di Virus_101
    Registrato dal
    Sep 2008
    Messaggi
    2,497
    gia' e attenzione anche all'error control!!!
    Se il controllo di errore e' disabilitato e lo script si impalla in modo incontrollato non potrai capire se fa davvero quello che ti serve o meno.

    Inoltre come dice maurizio .... dipende da davo e' caricato lo script, se e' fatto per php4 o 5 visto che usa una classe. Dipende da come e' configurato l'smtp nel php.ini ....

    Poi se la mail nn arriva per testare l'invio ti consiglio di usare la semplice funzione mail.

    Ovviamente devi forgiare degli header corretti e provare.
    Tutti o quasi gli script di mailing in php che troverai in internet si basano sulla funzione mail per l'invio della mail, il resto sono solamente funzioni/metodi di configurazione del mesaggio.

    .....


    EDIT: Ah notavo un errore in cofigurazione dell'header nel campo from.
    Il campo from e' bene che esista anche se nn vero cmq devi mettere un from senno molti server smtp ti rifiutano i messaggi.
    $from ="From:tes_one<test.one@[tuo_dominio].com>";
    Come vedi questo tipo di settaggio del campo from nell'header del messaggio e' assolutamente fasuillo ma la mail e' corretta sia sintatticamente che per il dominio(esistente e attivo). Non importa se e' finta finche la usi solo per un test.

  5. #5
    Ciao Michela

    credo che una mail senza mittente andrà diretta nella spam del tuo server provider quindi se anche la invii difficilmente riuscirai a riceverla.
    Detto questo io resterei sul primo modello con alcune modifiche dato che una buona intestazione della mail è quella che ti evita di essere vista come "spam"

    Codice PHP:
    $intestazioni "From: $mitt\n";
    $intestazioni .= "MIME-Version: 1.0\n";
    $intestazioni .= "Content-Type: text/html; charset=\"iso-8859-1\"\n";
    $intestazioni .= "Content-Transfer-Encoding: 7bit\n\n";

    mail ("$dest""$oggetto""$testo""$intestazioni"); 
    Facci sapere se così funziona!
    ***************************
    Non può piovere per sempre...
    ***************************

  6. #6
    continua a non arrivare alcuna mail....

    secondo le vostre indicazioni ho così modificato il codice:
    Codice PHP:
    include ("funzioni.php");
    //reperisco i dati
    $mail="michela.brioni@tele2.it";
    $mitt=$_POST['mail'];
    $nome=$_POST['nome'];
    $ind=$_POST['ind'];
    $cap=$_POST['cap'];
    $citta=$_POST['citta'];
    $prov=$_POST['prov'];
    $tel=$_POST['tel'];
    $ord=$_POST['ordine'];
    $intest=$_POST['intest'];
    $mex=$_POST['mex'];
    $note=$_POST['note'];
    $risp=$_POST['risp'];
    switch (
    $risp
    {
      case 
    "risp1":
        
    $pagam="PayPal o Carta di credito";
        break;
      case 
    "risp2":
        
    $pagam="Via posta";
        break;
    }
    //creo il messaggio
    $testo "ORDINE: $ord
              NOME E COGNOME: 
    $nome
              INDIRIZZO: 
    $ind
              CAP: 
    $cap
              CITTA': 
    $citta
              PROVINCIA: 
    $prov
              TELEFONO: 
    $tel
              MAIL: 
    $mitt
              INTESTAZIONE: 
    $intest
              MESSAGGIO: 
    $mex
              NOTE: 
    $note
              PAGAMENTO: 
    $pagam
              "
    ;
    $oggetto="Ordine";
          
    $dest=$mail;
          
    $intestazioni "From: tes_one<test.one@tele2.com>\n";
          
    $intestazioni .= "MIME-Version: 1.0\n";
          
    $intestazioni .= "Content-Type: text/html; charset=\"iso-8859-1\"\n";
          
    $intestazioni .= "Content-Transfer-Encoding: 7bit\n\n";
    //invio l'email
          
    mail($dest,$oggetto,$testo,$intestazioni); 


    Grazie

  7. #7
    Utente di HTML.it L'avatar di Virus_101
    Registrato dal
    Sep 2008
    Messaggi
    2,497
    allora fai una cosa bella

    prima dello script
    fai

    error_reporting(E_ALL);

    Cosi' vediamo tuttii gli eventuali errori

  8. #8
    Non viene segnalato alcun errore

  9. #9
    Utente di HTML.it L'avatar di Virus_101
    Registrato dal
    Sep 2008
    Messaggi
    2,497
    Ok allora possono essere problemi di smtp....

    ora scusa ma devo andare dal meccanico a far veder el macchina poi dipende quando finisco andro' a pranzare ..... sto pome se ho 2 sec di tempo ci do un occhio meglio ... cmq controlla l'stmp intanto che magari ti ha messo in black list.

    Nel caso prova mime mail5 da phpguru (nn ricordo il link cmq google lo trova subito), e prova a usare quella classe ccolelgandoti al smtp di google per inviare le mail(ovviamente devi avere un google account per farlo).

    Ciauz scusa se nn ti posso di maggior aiuto ora ma sono davvero di frettissima.

    EDIT:
    Super fast edit
    Codice PHP:

    // To send HTML mail, the Content-type header must be set
    $headers  'MIME-Version: 1.0' "\r\n";
    $headers .= 'Content-type: text/html; charset=iso-8859-1' "\r\n";

    // Additional headers
    $headers .= 'To: Mary <mary@example.com>, Kelly <kelly@example.com>' "\r\n";
    $headers .= 'From: Birthday Reminder <birthday@example.com>' "\r\n"
    Prova con un header formato cosi'.
    Ovviamente e' sempre un esmpio(tratto da www.php.net nella sezione funzione mail(..)).

  10. #10
    Utente di HTML.it
    Registrato dal
    Mar 2007
    Messaggi
    232
    Mi inserisco anche io su questo problema visto che ne ho avuto un analogo di recente, come potete leggere QUI ho risolto ma con qualche problema:

    Se metto come destinatario un indirizzo del tipo gmail.com, l'e-mail arriva ma il messaggio viene ritenuto SPAM e questo è già un problema che con il PHP 4 non accadeva. E' risolvibile?

    MA PIU' IMPORTANTE...
    Se metto come destinatario un indirizzo del tipo @dominiosito.com non arriva proprio il messaggio, e non arriva a destinazione nemmeno se metto un indirizzo del dominio in cui risiede il sito. Comunque sempre con il PHP 4 andava tutto.

    Mi chiedo, dove può stare il problema, nella programmazione oppure nell'hosting? Nella programmazione non ne sono sicuro visto che comunque verso gmail funziona altrimenti ditemi pure, se invece pensate che sia l'hosting, cosa dovrei chiedere di abilitare/fare? Che rimettano il 4 è difficile.

    Forse se uniamo le forze possiamo risolvere entrambi.

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.