Your IP : 216.73.216.39


Current Path : /home/wirbesti/public_html/
Upload File :
Current File : /home/wirbesti/public_html/mail-PDF-de3.php

<?php

// Enable error reporting for debugging
error_reporting(E_ALL);
ini_set('display_errors', 1);
ini_set('max_execution_time', 300); // 5 minutes

// Start logging
$logFile = __DIR__ . '/debug.log';
function logMessage($message) {
    global $logFile;
    file_put_contents($logFile, date('Y-m-d H:i:s') . " - $message\n", FILE_APPEND);
}

logMessage("Script started");

// Prevent multiple executions using a session
session_start();
logMessage("Session started");

// Check if the email has already been sent for this request
if (isset($_SESSION['email_sent_de_' . $_GET['campaign'] . '_' . $_GET['email']])) {
    logMessage("Email already sent, redirecting");
    header('Location: https://wirbestimmen.ch/de/unterschriftsbogen-dl-de');
    exit;
}

ob_start();
logMessage("Output buffering started");

$nachname = $_GET['nachname'];
$vorname = $_GET['vorname'];
$email = $_GET['email'];
$campaign = $_GET['campaign'];

logMessage("Parameters: nachname=$nachname, vorname=$vorname, email=$email, campaign=$campaign");

// Validate email
if (empty($email) || !filter_var($email, FILTER_VALIDATE_EMAIL)) {
    logMessage("Invalid email: $email");
    ob_end_clean();
    die('Invalid email address');
}

require_once 'php/Metadata.php';
require_once 'php/DBConnection.php';
require_once 'php/setting.config.php';
require_once 'vendor/autoload.php'; // PHPMailer autoload

use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\Exception;

logMessage("Required files loaded");

$db = new DBConnection($config);
logMessage("Database connection established");

$meta = new Metadata($db);
$metaEntry = $meta->getMetadataByCampaignid($campaign);
logMessage("Metadata query executed");

if ($metaEntry) {
    $filename = $metaEntry['signature-form-path-pdf-de'];
    $subjectname = $metaEntry['slogan-de'];
} else {
    $filename = 'Name.pdf';
    $subjectname = '"Text der initiative"';
}

logMessage("Metadata: filename=$filename, subjectname=$subjectname");

// Recipient
$to = $email;

// Sender
$from = 'kontakt@wirbestimmen.ch';
$fromName = 'Wir bestimmen';

// Email subject
$subject = 'Unterschriftsbogen leer - ' . $subjectname;
$path = getcwd();

// Attachment file path
$file = $path . '/' . $filename;

logMessage("Attachment file path: $file");

// Check if file exists
if (!empty($file) && !is_file($file)) {
    logMessage("Attachment file not found: $file");
    ob_end_clean();
    die('Attachment file not found');
}

$htmlContent = '<p><strong>Hallo ' . $vorname . ' ' . $nachname . '</strong></p>
<p>Wir danken Ihnen im Namen des Initiativekomitees.</p>
<p>Wir haben Ihnen im Anhang ein leeres Unterschriftsblatt, resp. einen Strassenbogen zugestellt.</p>
<p><strong>WICHTIG:</strong><br />Damit Ihre Mühe nicht umsonst war und die <strong>Unterschriften gültig sind</strong>, müssen wenige aber <strong>WICHTIGE</strong> Regeln beachtet werden:</p>
<ol>
<li>Alle Personen müssen aus dem gleichen Dorf oder aus der gleichen Stadt (PLZ) sein, wie oben in Politische Gemeinde eingetragen.</li>
<li>Alle Felder "Name, Vorname, Geburtsdatum, Strasse & Nr." müssen ausgefüllt und zuhinterst mit der Unterschrift der Person versehen sein.</li>
<li>Das Feld "Namen und Vornamen" muss von der unterzeichnenden Person handschriftlich ausgefüllt werden.</li>
</ol>
<p>Weitere Bögen können bei uns auf kontakt@wirbesimmen.ch oder unter +41 840 123 456 bestellt werden.</p>
<p>Dürfen wir Sie bitten, uns den Unterschriftsbogen gefalten in einem Couvert, oder gefalten und mit einem Klebestreifen verschlossen in den nächsten Briefkasten zu werfen. Sie machen den Organisatoren der Volksinitiative <strong>einen grossen Gefallen</strong>, wenn diese die Unterschriften nicht in aller letzten Sekunde erhalten. Die Prüfung auf Fehler nimmt einige Zeit in Anspruch.<br />Dafür danken wir Ihnen herzlich.</p>
<p>Wenn Sie mögen, bitte unterstützen Sie unsere Sammlung mit einer Briefmarke. Auch dafür danken wir Ihnen herzlich.</p>
<p>Wir wünschen Ihnen weiterhin grossen Elan für die Schweiz und die Zukunft einzustehen und Grüssen Sie herzlich.<br /><a href="http://www.wirbestimmen.ch" target="_blank" rel="noopener noreferrer"><br />Wir bestimmen<br /></a>Tel.: +41 840 123 456<br />Mail: <a href="mailto:kontakt@wirbestimmen.ch">kontakt@wirbestimmen.ch</a></p>
<p> </p>
<p>Unser Engagement für eine starke und breite direkte Demokratie kostet viel Geld. <br />Für Ihre Unterstützung durch eine Spende sind wir sehr dankbar.<br /><br /><em><strong>Spenden können Sie direkt auf folgendes Konto einzahlen:</strong></em></p>
<p>Wir bestimmen<br />3006 Bern<br /><br />Konto: 61-933005-1<br />IBAN:  CH68 0900 0000 6193 3005 1</p>';

$mail = new PHPMailer(true);

try {
    // Enable PHPMailer debugging
    $mail->SMTPDebug = 2; // 2 = client and server messages
    $mail->Debugoutput = function($str, $level) use ($logFile) {
        file_put_contents($logFile, date('Y-m-d H:i:s') . " - [PHPMailer] $str\n", FILE_APPEND);
    };

/*
    // Server settings
    $mail->isSMTP(); // Use SMTP
    $mail->Host = 'mail.wirbestimmen.ch'; 
    $mail->SMTPAuth = true;
    $mail->Username = 'service@wirbestimmen.ch'; 
    $mail->Password = 'FW%24VdqY1~l'; 
    $mail->SMTPSecure = PHPMailer::ENCRYPTION_STARTTLS;
    $mail->Port = 465; 
    $mail->Timeout = 10; // Timeout for individual SMTP commands
    $mail->SMTPOptions = [
    'ssl' => [
        'verify_peer' => false,
        'verify_peer_name' => false,
        'allow_self_signed' => true
    ]
    ]; // Bypass SSL verification (use cautiously, only for testing)
    $mail->SMTPDebug = 4; // 4 = full debug output, including low-level connection details
    $mail->Debugoutput = function($str, $level) use ($logFile) {
    file_put_contents($logFile, date('Y-m-d H:i:s') . " - [PHPMailer Level $level] $str\n", FILE_APPEND);
};
*/

    logMessage("SMTP settings configured");

    // Recipients
    $mail->setFrom($from, $fromName);
    $mail->addAddress($to);

    // Attachments
    if (!empty($file) && is_file($file)) {
        $mail->addAttachment($file);
        logMessage("Attachment added: $file");
    }

    // Content
    $mail->isHTML(true);
    $mail->CharSet = 'UTF-8';
    $mail->Subject = $subject;
    $mail->Body = $htmlContent;

    logMessage("Email content prepared");

    // Send the email
    $mail->send();
    logMessage("Email sent successfully");

    // Mark email as sent
    $_SESSION['email_sent_de_' . $_GET['campaign'] . '_' . $_GET['email']] = true;

    // Clean output buffer and redirect
    ob_end_clean();
    header('Location: https://wirbestimmen.ch/de/unterschriftsbogen-dl-de');
    exit;

} catch (Exception $e) {
    logMessage("Mailer Error: {$mail->ErrorInfo}");
    ob_end_clean();
    echo "Message could not be sent. Mailer Error: {$mail->ErrorInfo}";
    exit;
}
?>