to nie formularz wysyła maile, tylko skrypt, który przygotujesz. Przez formularz miałem na myśli jakieś pole typu textarea, w którym wpisałbyś adresy e-mail a po wysłaniu danych do serwera obsłużył to przez PHP. Mając te dane możesz poprzez iterację wykonać wysyłkę dla każdego adresu z osobna, np.:
$email_addresses = explode("\n",$_POST['email_addresses']);
$subject = 'the subject';
$message = 'hello';
$headers = 'From: webmaster@example.com' . "\r\n" .
'Reply-To: webmaster@example.com' . "\r\n" .
'X-Mailer: PHP/' . phpversion();
foreach($email_addresses as $k => $v)
{
mail($v, $subject, $message, $headers);
}
Jest to najprostszy z możliwych sposobów. Funkcja mail() w tak surowej postaci korzysta z domyślnie skonfigurowanego konta e-mail, obsługiwanego przez PHP na Twojej maszynie. Dla bardziej zaawansowanej wysyłki polecam PHPMailer. Jeżeli podajesz link do rejestracji w treści wiadomości to też musisz mieć przygotowany skrypt obsługujący zapis takich klientów.
Nie wiem jak to planujesz rozwiązać, przypuszczam, że ta aplikacja nie korzysta z jakiegoś bardziej zaawansowanego mechanizmu, lub jakiegoś frameworka umożliwiającego określenie akcji dla danego modułu, więc po prostu możesz stworzyć plik rejestracja.php a link który wyślesz klientowi to http://xxx.yy/rejestracja.php?registration_hash={$hash}
a w pliku rejestracja.php połączysz się z bazą, pobierzesz prostym zapytaniem ilość rekordów zawierających registration_hash w polu registration_hash i jeżeli jest równe 1, wówczas wykonujesz proste zapytanie UPDATE, które aktualizuje wymagane wartości.
Wcześniej pisałem o tworzeniu hashy przy funkcji md5 zawierającej time() z jakimś kluczem. Jeżeli to będzie wysyłka masowa to lepiej połącz to jeszcze z jakąś unikatową wartością np. z mailem klienta, bo md5(time() . ‘COS_TAM’) zmieniać się będzie co 1 sekundę, a jak to zrobisz w jednej pętli to dla wielu rekordów wygeneruje się taki sam hash.
Co do pierwszej części Twojej wiadomości, to tak - tak ta tabela powinna wyglądać, jeżeli całkowicie przyjmiesz moje założenia.
Co do kwestii prawnych, to możliwe, że wysyłka do wielu adresatów oferty nie jest dozwolona ze względu na jawne przesłanie nagłówkiem adresów pozostałych adresatów. Sam nie chciałbym, żeby mój adres nagle zobaczyło 100 innych odbiorców. Zawsze można jednak wysłać wiadomość do siebie a dodać w ukrytej kopii adresy odbiorców, do których wiadomość ma dotrzeć. Nie jest to profesjonalne rozwiązanie, ale prawnie chyba nikt Ci niczego nie zarzuci.