File: /home/wbwebdes/domains/mailing.wb-webdesign.com/public_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";
?>