🚀 Nuova versione beta disponibile! Feedback o problemi? Contattaci

Esercizi Invio Email PHP

Codegrind Team•Jul 12 2024

Ecco degli esercizi con soluzione per praticare l’invio di email in PHP, sia in modo sequenziale che utilizzando la programmazione orientata agli oggetti.

Esercizio 1: Invio di Email Sequenziale con mail()

Inviare un'email semplice utilizzando la funzione `mail()` in modo sequenziale.
<?php
$to = "destinatario@example.com";
$subject = "Email di prova";
$message = "Questo è un messaggio di prova.";
$headers = "From: mittente@example.com";

if(mail($to, $subject, $message, $headers)) {
    echo "Email inviata con successo.";
} else {
    echo "Errore nell'invio dell'email.";
}
?>

Esercizio 2: Invio di Email Sequenziale con Headers Aggiuntivi

Inviare un'email con headers aggiuntivi, inclusi `CC` e `BCC`.
<?php
$to = "destinatario@example.com";
$subject = "Email di prova con CC e BCC";
$message = "Questo è un messaggio di prova con CC e BCC.";
$headers = "From: mittente@example.com\r\n";
$headers .= "CC: cc@example.com\r\n";
$headers .= "BCC: bcc@example.com\r\n";

if(mail($to, $subject, $message, $headers)) {
    echo "Email inviata con successo.";
} else {
    echo "Errore nell'invio dell'email.";
}
?>

Esercizio 3: Invio di Email con PHPMailer (OOP)

Utilizzare la libreria PHPMailer per inviare un'email semplice utilizzando la programmazione orientata agli oggetti.
<?php
use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\Exception;

require 'vendor/autoload.php';

$mail = new PHPMailer(true);

try {
    $mail->setFrom('mittente@example.com', 'Mittente');
    $mail->addAddress('destinatario@example.com');
    $mail->Subject = 'Email di prova con PHPMailer';
    $mail->Body    = 'Questo è un messaggio di prova inviato con PHPMailer.';

    $mail->send();
    echo 'Email inviata con successo.';
} catch (Exception $e) {
    echo 'Errore nell\'invio dell\'email: ', $mail->ErrorInfo;
}
?>

Esercizio 4: Invio di Email con Allegati Utilizzando PHPMailer (OOP)

Utilizzare PHPMailer per inviare un'email con un allegato.
<?php
use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\Exception;

require 'vendor/autoload.php';

$mail = new PHPMailer(true);

try {
    $mail->setFrom('mittente@example.com', 'Mittente');
    $mail->addAddress('destinatario@example.com');
    $mail->Subject = 'Email con allegato';
    $mail->Body    = 'Questo è un messaggio di prova con un allegato.';

    $mail->addAttachment('/path/to/file.txt');

    $mail->send();
    echo 'Email inviata con successo.';
} catch (Exception $e) {
    echo 'Errore nell\'invio dell\'email: ', $mail->ErrorInfo;
}
?>

Esercizio 5: Invio di Email con SMTP Utilizzando PHPMailer (OOP)

Utilizzare PHPMailer per inviare un'email tramite un server SMTP.
<?php
use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\Exception;

require 'vendor/autoload.php';

$mail = new PHPMailer(true);

try {
    $mail->isSMTP();
    $mail->Host = 'smtp.example.com';
    $mail->SMTPAuth = true;
    $mail->Username = 'username@example.com';
    $mail->Password = 'password';
    $mail->SMTPSecure = 'tls';
    $mail->Port = 587;

    $mail->setFrom('mittente@example.com', 'Mittente');
    $mail->addAddress('destinatario@example.com');
    $mail->Subject = 'Email inviata tramite SMTP';
    $mail->Body    = 'Questo è un messaggio di prova inviato tramite SMTP.';

    $mail->send();
    echo 'Email inviata con successo.';
} catch (Exception $e) {
    echo 'Errore nell\'invio dell\'email: ', $mail->ErrorInfo;
}
?>

Esercizio 6: Invio di Email HTML con PHPMailer (OOP)

Utilizzare PHPMailer per inviare un'email in formato HTML.
<?php
use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\Exception;

require 'vendor/autoload.php';

$mail = new PHPMailer(true);

try {
    $mail->setFrom('mittente@example.com', 'Mittente');
    $mail->addAddress('destinatario@example.com');
    $mail->Subject = 'Email in HTML';
    $mail->isHTML(true);
    $mail->Body    = '<h1>Messaggio di prova</h1><p>Questo è un messaggio di prova in formato HTML.</p>';

    $mail->send();
    echo 'Email inviata con successo.';
} catch (Exception $e) {
    echo 'Errore nell\'invio dell\'email: ', $mail->ErrorInfo;
}
?>