diff --git a/en/newsletter.php b/en/newsletter.php
index 2befb26..b32a01c 100644
--- a/en/newsletter.php
+++ b/en/newsletter.php
@@ -39,6 +39,47 @@
else $err = "Invalid E-mail";
else $err = "E-mail is required";
+ $filename = "/tmp/list-code-" . $email;
+
+ if (!empty($_GET['code'])) {
+ if (file_get_contents($filename) == $_GET['code']) {
+ if ($_GET['action'] == "sub") {
+ $handle = fopen("/var/spool/list", "a");
+ fwrite($handle, $code . "\n");
+ fclose($handle);
+ } else {
+ $contents = file_get_contents("/var/spool/list");
+ $contents = str_replace($line . PHP_EOL, '', $contents);
+ file_put_contents("/var/spool/list", $contents);
+ }
+ unlink($filename);
+
+ $subject = $_GET['action'] == "sub" ? "S" : "Uns" . "ubscription confirmed";
+ $headers = "From: announcements@vern.cc\n";
+ $headers .= "MIME-Version: 1.0\n";
+ $headers .= "Content-type: text/plain\n";
+ $message = "You have been " . $_GET['action'] == "sub" ? "added to" : "removed from" . " the ~vern announcement mailing list";
+
+ mail($email, $subject, $message, $headers);
+ } else {
+ $code_err = 'Incorrect code';
+ }
+ } else {
+ $code = substr(md5(rand()), 0, 8);
+ $handle = fopen($filename, "w+");
+ chmod($filename, 0600);
+ fwrite($handle, $code);
+ fclose($handle);
+
+ $subject = "Your confirmation code";
+ $headers = "From: announcements@vern.cc\n";
+ $headers .= "MIME-Version: 1.0\n";
+ $headers .= "Content-type: text/plain\n";
+ $message = "Your confirmation code is $code. Do not share it with anyone.\n\nIf you did not initiate this, you can safely ignore this message.";
+
+ mail($email, $subject, $message, $headers);
+ }
+
if (empty($_GET['action']) || ($_GET['action'] != "sub" && $_GET['action'] != "unsub") || !empty($err) && empty($_GET['code'])) {
?>
@@ -57,46 +98,6 @@
A confirmation code was sent to