Salve. Sto da qualche giorno studiando PHP su un testo un po ostico per un totale principiante...o almeno per me!!! Avrei bisogno che qualcuno mi spiegasse un passaggio all'interno di due script che nell'insieme servono per spedire una mail. Se questa sezione non è pensata per questioni didattiche spostate o cancellate senza indugio.

Nel primo script è contenuta una classe, con i suoi metodi e proprietà (class.SimpleMail.php):

Codice PHP:
<?php
class SimpleMail
{
    
// class properties- parts of a message
    
private $toAddress;
    private 
$CCAddress;
    private 
$BCCAddress;
    private 
$fromAddress;
    private 
$subject;
    private 
$sendText;
    private 
$textBody;
    private 
$sendHTML;
    private 
$HTMLBody;

    
// initialize the message parts with blank or default values
    
public function __construct() {
        
$this->toAddress '';
        
$this->CCAddress '';
        
$this->BCCAddress '';
        
$this->fromAddress '';
        
$this->subject '';
        
$this->sendText true;
        
$this->textBody '';
        
$this->sendHTML false;
        
$this->HTMLBody '';
    }

    
// set TO address
    
public function setToAddress($value) {
        
$this->toAddress $value;
        
    }

    
// set CC address
    
public function setCCAddress($value) {
        
$this->CCAddress $value;
    }

    
// set BCC address
    
public function setBCCAddress($value) {
        
$this->BCCAddress $value;
    }

    
// set FROM address
    
public function setFromAddress($value) {
        
$this->fromAddress $value;
    }

    
// set message subject
    
public function setSubject($value) {
        
$this->subject $value;
    }

    
// set whether to send email as text
    
public function setSendText($value) {
        
$this->sendText $value;
    }

    
// set text email message body
    
public function setTextBody($value) {
        
$this->sendText true;
        
$this->textBody $value;
    }

    
// set whether to send email as HTML
    
public function setSendHTML($value) {
        
$this->sendHTML $value;
    }

    
// set text HTML message body
    
public function setHTMLBody($value) {
        
$this->sendHTML true;
        
$this->HTMLBody $value;
    }

    
// send email
    
public function send($to null$subject null$message null,
        
$headers null) {
        
$success false;
        if (!
is_null($to) && !is_null($subject) && !is_null($message)) {
            
$success mail($to$subject$message$headers);
            return 
$success;

        
//.............
       // .............


?>
Il secondo lo utilizza per la spedizione vera e propria (mail_text.php):

Codice PHP:
<?php
require 'class.SimpleMail.php';

$message = new SimpleMail();

$message->setToAddress('esempio@dominio.com');
$message->setSubject('Testing text email');
$message->setTextBody('This is a test using plain text email!');

if (
$message->send()) {
    echo 
'Text email sent successfully!';
} else {
    echo 
'Sending of text email failed!';
}
?>
Ora, da quello che ho potuto capire da questi pochi giorni di studio la cosa funziona così:

Faccio partire mail_text.php. Le tre istanze $message della classe SimpleMail, tramite le relative funzioni in SimpleMail.php, scrivono i valori che passo (indirizzo, soggetto, testo) nelle variabili private (incapsulate) $toAddress, $subject e $sendText di SimpleMail.php. Fin qua ci sono arrivato!!!

Ora però, come $to, $subject e $message arrivano alla funzione send? Ovvero, come $toAddress, $subject e $sendText, dove sono scritti indirizzo, soggetto e testo, "diventano" $to, $subject e $message?

Spero di essere stato chiaro.

Grazie a tutti