HEX
Server: LiteSpeed
System: Linux d8 4.18.0-553.30.1.lve.el8.x86_64 #1 SMP Tue Dec 3 01:21:19 UTC 2024 x86_64
User: wbwebdes (3015)
PHP: 8.1.31
Disabled: exec,system,passthru,shell_exec,proc_close,proc_open,dl,popen,show_source,posix_kill,posix_mkfifo,posix_getpwuid,posix_setpgid,posix_setsid,posix_setuid,posix_setgid,posix_seteuid,posix_setegid,posix_uname
Upload Files
File: /home/wbwebdes/domains/mailing.wb-webdesign.com/private_html/scripts/check_mail.php
<?php
use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\Exception;

// Vereisten voor PHPMailer
require 'vendor/autoload.php'; // Zorg dat PHPMailer via Composer is geïnstalleerd

// Configuratie
$imapHost = '{mail.mailing.wb-webdesign.com:993/imap/ssl}INBOX'; // IMAP-server
$imapUser = '[email protected]'; // Volledige e-mailadres
$imapPass = 'zZdB5tvwMADpw33tzWL9'; // IMAP-wachtwoord

$smtpHost = 'mail.mailing.wb-webdesign.com'; // SMTP-server
$smtpPort = 587; // Meestal 587 voor TLS
$smtpUser = '[email protected]'; // SMTP-gebruikersnaam
$smtpPass = 'zZdB5tvwMADpw33tzWL9'; // SMTP-wachtwoord

// Goedgekeurde afzenders
$approvedSenders = [
    '[email protected]',
    '[email protected]',
];

// Goedgekeurde ontvangers
$approvedRecipients = [
    '[email protected]',
    '[email protected]',
    '[email protected]',
    '[email protected]',
];

// Open de IMAP-mailbox
$mailbox = imap_open($imapHost, $imapUser, $imapPass);

if (!$mailbox) {
    die("Kan mailbox niet openen: " . imap_last_error());
}

// Zoek naar ongelezen e-mails
$emails = imap_search($mailbox, 'UNSEEN');

if ($emails) {
    foreach ($emails as $emailNumber) {
        $header = imap_headerinfo($mailbox, $emailNumber);
        $fromEmail = $header->from[0]->mailbox . '@' . $header->from[0]->host;
        $subject = $header->subject ?: 'Geen onderwerp';
        $body = imap_fetchbody($mailbox, $emailNumber, 1);

        // Controleer of de afzender is goedgekeurd
        if (!in_array($fromEmail, $approvedSenders)) {
            error_log("Niet-goedgekeurde afzender: $fromEmail");
            continue;
        }

        // Doorsturen naar goedgekeurde ontvangers
        $mail = new PHPMailer(true);

        try {
            $mail->isSMTP();
            $mail->Host = $smtpHost;
            $mail->SMTPAuth = true;
            $mail->Username = $smtpUser;
            $mail->Password = $smtpPass;
            $mail->SMTPSecure = PHPMailer::ENCRYPTION_STARTTLS;
            $mail->Port = $smtpPort;

            $mail->setFrom($smtpUser, 'WB Webdesign');
            foreach ($approvedRecipients as $recipient) {
                $mail->addAddress($recipient);
            }

            $mail->Subject = $subject;
            $mail->Body = $body;

            $mail->send();
        } catch (Exception $e) {
            error_log("Fout bij het doorsturen: {$mail->ErrorInfo}");
        }

        // Verstuur ontvangstbevestiging naar afzender
        $replyMail = new PHPMailer(true);

        try {
            $replyMail->isSMTP();
            $replyMail->Host = $smtpHost;
            $replyMail->SMTPAuth = true;
            $replyMail->Username = $smtpUser;
            $replyMail->Password = $smtpPass;
            $replyMail->SMTPSecure = PHPMailer::ENCRYPTION_STARTTLS;
            $replyMail->Port = $smtpPort;

            $replyMail->setFrom($smtpUser, 'WB Webdesign');
            $replyMail->addAddress($fromEmail);

            $replyMail->Subject = 'Ontvangstbevestiging';
            $replyMail->Body = "Beste gebruiker,\n\nWij hebben uw bericht ontvangen en verwerken deze zo snel mogelijk.\n\nMet vriendelijke groet,\nWB Webdesign";

            $replyMail->send();
        } catch (Exception $e) {
            error_log("Fout bij het versturen van ontvangstbevestiging: {$replyMail->ErrorInfo}");
        }

        // Markeer e-mail als gelezen
        imap_setflag_full($mailbox, $emailNumber, "\\Seen");
    }
} else {
    echo "Geen ongelezen e-mails gevonden.\n";
}

// Sluit de mailbox
imap_close($mailbox);

echo "E-mails verwerkt.\n";
?>