-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmailing.php
71 lines (60 loc) · 2.21 KB
/
mailing.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
<?php
require_once('config.php');
// PHPMailer einbinden
use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\Exception;
require 'PHPMailer/src/Exception.php';
require 'PHPMailer/src/PHPMailer.php';
require 'PHPMailer/src/SMTP.php';
// Funktion zum Senden einer E-Mail
function send_email($to, $subject, $message) {
$mail = new PHPMailer(true);
try {
$mail->setFrom('deine_email@example.com', 'Dein Name'); // Absender
$mail->addAddress($to); // Empfänger
$mail->isHTML(false);
$mail->Subject = $subject;
$mail->Body = $message;
$mail->send();
return true;
} catch (Exception $e) {
echo "Fehler beim Senden der E-Mail: {$mail->ErrorInfo}";
return false;
}
}
// Dateipfad zur CSV-Datei
$csv_file = 'deine_datei.csv'; // Passe den Dateinamen an
$used_csv_file = 'verwendete_emails.csv'; // Datei für abgeschlossene E-Mails
$emails = [];
// CSV-Datei lesen und E-Mails in ein Array speichern
if (($handle = fopen($csv_file, "r")) !== FALSE) {
while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) {
$emails = array_merge($emails, $data); // Annahme: Alle E-Mails stehen in einer Spalte
}
fclose($handle);
}
// Überprüfe, ob die Datei für abgeschlossene E-Mails existiert, falls nicht, erstelle sie
if (!file_exists($used_csv_file)) {
$handle = fopen($used_csv_file, 'w');
fclose($handle);
}
// Deine E-Mail-Informationen
$message = 'Hier ist deine vorgefertigte Nachricht.'; // Passe deine Nachricht an
// Sende 10 E-Mails, falls verfügbar
$emailsToSend = array_splice($emails, 0, 10); // Die ersten 10 E-Mails auswählen
foreach ($emailsToSend as $receiver_email) {
$subject = 'Dein Betreff'; // Passe den Betreff an
send_email($receiver_email, $subject, $message);
sleep(2); // 2 Sekunden Pause zwischen den E-Mails, um das Senden zu simulieren
// Füge die verwendete E-Mail der Datei für abgeschlossene E-Mails hinzu
$handle = fopen($used_csv_file, 'a');
fputcsv($handle, [$receiver_email]);
fclose($handle);
}
// Aktualisierte E-Mail-Liste in die CSV-Datei zurückschreiben
$handle = fopen($csv_file, 'w');
foreach ($emails as $row) {
fputcsv($handle, [$row]);
}
fclose($handle);
?>