L'ho creato in PHP, ma sul server Aruba non mi manda l'e-mail.
Come mai?
Questo è lo script per mandare l'e-mail quando ci si iscrive:
<?
if (!isset($email) || !isset($name) || empty($email) || empty($name)) {
fail("Devi scrivere il nome e l'e-mail!");
}

$email = strtolower($email);

switch($action) {
case "subscribe":
subscribe($name, $email);
break;

case "unsubscribe":
unsubscribe($email);
break;

default:
fail("Unknown action: $action");
}


function subscribe($name, $email) {

if (isSubscribed($email)) {
fail("$email sei gia' iscritto alla mailing list");
}

$joinDate = time();

$file = fopen('..//..//public//subscriber.dat', 'a+');

if (!$file) {
fail("Errore: non posso fare la sottoscrizione!");
}

fputs($file, "$name|$email|$joinDate\n");
fclose($file);

sendEmail($email, $name);
mailAdmin($email, $name);

success();
}


function unsubscribe($email) {
if (!isSubscribed($email)) {
fail("$email si e' cancellato dalla mailing list");
}

$subscribers = file('..//..//public//subscriber.dat');

if (!$subscribers) {
fail("Errore: non posso fare la sottoscrizione!");
}

foreach($subscribers as $count => $subscriber) {
$info = explode('|', $subscriber);

if($info[1] == $email) {
unset($subscribers[$count]);
}
}

$file = fopen('..//..//public//subscriber.dat', 'w');

if (!$file) {
fail("Non posso rimuovere la sottoscrizione!");
}

foreach($subscribers as $subscriber) {
fwrite($file, $subscriber);
}

fclose($file);

success();
}


function sendEmail($email, $name) {
$mailTo = "$name <$email>";
$mailFrom = "From: LarryWeb<larry@larryweb.it>\n\n";
$mailSubject = "Conferma di registrazione...";
$mailBody = "Ciao $name,\n\ni tuoi dati sono stati registrati nella mailing list di LarryWeb . Ogni novita' riguardante il sito ti sara' inviata a $email. Puoi anche controllare gli ultimi aggiornamenti collegandoti al sito http://www.larryweb.it\n\nGrazie!\n\nLarryWeb'";
mail($mailTo, $mailSubject, $mailBody, $mailFrom);
}

function mailAdmin($email, $name) {
$mailTo = "LarryWeb <larry@larryweb.it>";
$mailFrom = "From: LarryWeb<larry@larryweb.it>\n\n";
$mailSubject = "Nuovo Iscritto...";
$mailBody = "$name ($email) si e' iscritto";
mail($mailTo, $mailSubject, $mailBody, $mailFrom);
}


function isSubscribed($email) {
$matchFound = false;
$subscribers = file('..//..//public//subscriber.dat');

if ($subscribers) {
foreach($subscribers as $count => $subscriber) {
$info = explode('|', $subscriber);

if($info[1] == $email) {
$matchFound = true;
}
}
}

return $matchFound;
}

function isBanned($email) {
return false;
}

function fail($errorMsg) {
$errorMsg = urlencode($errorMsg);
print "&result=Fail&errorMsg=$errorMsg";
exit;
}

function success() {
print "&result=Okay";
exit;
}
?>
Questo è lo script per l'amministratore, per mandare le news:

<?
// Definisci il File dove andrai a scrivere
$subsFile = '..//..//public//subscriber.dat';

// Definisci admin username e password
$adminUsername = "larrygiu";
$adminPassword = "pwd";

// If supplied username/password do not match above
if ($inUsername != $adminUsername || $inPassword != $adminPassword) {
// Output error information and quit
print "Invalid username or password";
exit;
}

// Decide on what action we need to take
switch($action) {
// Fetch list of subscribers
case "List Subscribers":
fetchList();
break;

// Send email to subscribers
case "Send Email":
sendEmail($mailSubject, $mailBody);
break;

default:
print "Unknown action: $action";
exit;
}


function fetchList() {
// Register global variables
global $subsFile;

// Attempt to open subscriber file
$subscribers = file($subsFile);

if (!$subscribers) {
// Output error information and quit
print "Couldn't open subscriber file or no subscribers listed";
exit;
}

// For each subscriber line...
foreach($subscribers as $count => $subscriber) {
// split subscriber info into array
$info = explode('|', $subscriber);

// Assign array to meaningful variable name
$name = $info[0];
$email = $info[1];
$joined = $info[2];

// Create a readable joined date out of timestamp
$joined = strftime("%D", $joined);

// Output information for each subscriber
print "Subscriber $count
";
print "Name: $name
\n";
print "Email: $email
\n";
print "Joined: $joined
\n";
print "
\n";
}
}

function sendEmail ($mailSubject, $mailBody) {
// Register global variables
global $subsFile;

// Set up reply address for mailing list
$mailFrom = "News da LarryWeb...<larry@larryweb.it>";

// Ensure that subject and body of email have
// automatically inserted escape slashes removed
$mailSubject = stripslashes($mailSubject);
$mailBody = stripslashes($mailBody);

// Attempt to read subscriber file
$subscribers = file($subsFile);

// If file open failed...
if (!$subscribers) {
// Output error information and quit
print "Couldn't open subscriber file or no subscribers listed";
exit;
}

// For each subscriber line...
foreach($subscribers as $subscriber) {
// split subscriber info into array
$info = explode('|', $subscriber);

// Assign array to meaningful variable name
$name = $info[0];
$email = $info[1];
$joined = $info[2];

// Build to address including subscriber name
$mailTo = "$name <$email>";

// Send email to
mail($mailTo, $mailSubject, $mailBody, "From: " . $mailFrom);
}

print "E-mail inviata a tutti gli iscritti";
}
?>

Chi mi aiuta?
LARRY