Registrierung: Gewisse E-Mail-Adressen nicht zulassen
am 16.08.2010 - 11:55 Uhr in
Hallo zusammen
Ich habe bei meinem Shared-Hoster das Problem, dass ab und zu der Mailversand an Hotmail-Adressen nicht funktioniert (alle anderen Anbieter jedoch schon). Gibt es eine Möglichkeit, dass bei der Registrierung Hotmail-Adressen zurückgewisen werden? Also dass wenn man sich mit einer Hotmail-Adresse registrieren will, drupal die Mailadresse auf "*@hotmail.com" überpfürft und falls positiv eine entsprechende Fehlermeldung (z.B.: "Bitte verwenden Sie keine Hotmail-Adresse" o.Ä.) angezeigt wird?
Bin dankbar für jede Hilfe!
mfg
Edit: Habe hier folgendes gefunden: "Yes, you can create access rules in admin/user/rules (Administer -> User management -> Access rules) that block email addresses that have certain patterns. To block a hotmail.com address, for example, create a rule type that denies any email address with the pattern %hotmail.com"
Somit können sich jedoch auch bisherige Benutzer, welche Hotmail-Adressen verwenden, nicht mehr anmelden.. Gibt es eine Möglichkeit, dass diese Regel nur für die Registrierung gilt (Neuanmeldungen)? Oder gibt es sonst eine Möglichkeit?
danke für tipps!
- Anmelden oder Registrieren um Kommentare zu schreiben
Du könntest dich über
am 16.08.2010 - 12:59 Uhr
Du könntest dich über hook_form_alter (oder besser noch hook_form_FORM_ID_alter) ins Registrierungsformular einklinken und eine eigene Validate-Funktion einbinden. In dieser prüfst du dann, ob in der eMail-Adresse der String "@hotmail.com" auftaucht und wenn das der Fall ist, gibst du einen Fehler aus.
Ist gar keine große Sache, dieser Code reicht dafür schon:
<?php
function my_module_form_user_register_alter(&$form, &$form_state)
{
//eigene Validate-Function einbinden
$form['#validate'][] = 'my_validate_function';
}
function my_validate_function(&$form, &$form_state)
{
//eMail-Adresse auslesen
$mail = $form_state['values']['mail'];
//prüfen, ob der String "@hotmail.com" in Mail-Adresse auftaucht
if (strstr($mail, '@hotmail.com'))
{
form_set_error('', 'Bitte keine Hotmail-Adressen verwenden!');
}
}
?>
hallo, vielen dank für deine
am 16.08.2010 - 13:23 Uhr
hallo, vielen dank für deine rasche antwort! ich kenn mich leider nicht wahnsinnig gut aus mit solchen sachen, könntest du mir nur ganz kurz erklären wie ich das genau anstelle? wo z.b. ich diesen code einfügen muss? wäre echt nett!
viiielen dank!
Klar: Du musst einfach ein
am 16.08.2010 - 14:02 Uhr
Klar:
Du musst einfach ein eigenes kleines Modul schreiben und dort die oben genannten Functionen implementieren. Einen ganz guten Einstieg in die Modul-Entwicklung findet man im DC-Handbuch.
Aber weil ich letztens ohnehin schonmal so ein kleines Mail-Blacklist-Modul schreiben wollte, habe ich das jetzt mal kurz in Angriff genommen. Wenn du die Arbeit also nicht selbst machen willst, kannst du auch einfach mein Modul verwenden ;)
Das Modul kann einfach aktiviert werden, dann findet man unter admin/settings/mail_blacklist die Konfigurationsseite des Moduls. Dort kann man die Mail-Anbieter eintragen, welche auf die Blacklist sollen.
Wenn man bei der Registrierung eine eMail-Adresse eingibt, welche von einem Blacklist-Service stammt, wird diese Adresse nicht akzeptiert und ein Fehler ausgegeben.
Herunterladen kannst du das Modul hier:
Download von Drupex.de
Kein Extra Modul
am 16.08.2010 - 14:20 Uhr
Kein Extra Modul nowendig.
Einfach unter Benutzereinstellungen "Zugriffsregeln" festlegen mit %hotmail.com"
C.A.W. Webdesign
wow, nicht schlecht, vielen
am 16.08.2010 - 14:20 Uhr
wow, nicht schlecht, vielen dank!! werde mir die anleitung mal anschauen damit ich sowas in zukunft vielleicht selber hinkriege :-)
Nur noch eine frage: ist das modul drupal 5 kompatibel? ich verwende immer noch drupal 5... falls nein was muss angepasst werden?
nochmals vielen dank für deine schnelle und kompetente hilfe!
caw schrieb Kein Extra Modul
am 16.08.2010 - 14:24 Uhr
Kein Extra Modul nowendig.
Einfach unter Benutzereinstellungen "Zugriffsregeln" festlegen mit %hotmail.com"
das geht scheinbar eben nicht, das würde laut dieser diskussion den Zugriff bereits registrierter user, welche eine hotmail-adresse hinterlegt haben, verhindern..
oder etwa doch nicht?
Oh, D5-Kompatibel ist es
am 16.08.2010 - 14:58 Uhr
Oh, D5-Kompatibel ist es momentan nicht, ich schau mal rein und ändere das ganze entsprechend, dürfte nicht die Welt sein.
So, habe das ganze mal auf
am 16.08.2010 - 15:11 Uhr
So, habe das ganze mal auf Drupal 5 geändert.
Leider habe ich noch nie mit Drupal 5 gearbeitet und kann das ganze jetzt auch nicht unter D5 testen.
Darum: Vorsichtshalber DB-Backup machen und dann das Modul installieren und testen. Wenn was nicht klappt --> hier schreiben ;-)
Download
hallo, vielen dank für die
am 16.08.2010 - 15:36 Uhr
hallo, vielen dank für die portierung auf drupal 5! ich habe das modul installiert, ging soweit ohne fehlermeldung :) wenn ich jedoch admin/settings/mail_blacklist aufrufe, gelange ich nur nach admin/settings... Ich kann somit nicht einstellen welche emailadressen ich blockieren will.. was mache ich falsch?
Edit: wenn ich nun einen benutzer registrieren will erhalte ich auf der seite mit dem registrierungsformular folgenden fehler:
# warning: array_merge() [function.array-merge]: Argument #2 is not an array in /home/httpd/vhosts/domain.com/httpdocs/includes/form.inc on line 574.
# warning: array_merge() [function.array-merge]: Argument #2 is not an array in /home/httpd/vhosts/domain.com/httpdocs/includes/form.inc on line 577.
Ach man, so ist das eben,
am 16.08.2010 - 15:42 Uhr
Ach man, so ist das eben, wenn man noch nie mit Drupal 5 gearbeitet hat -,-'
Ich schau mir das heute mal im Laufe des Tages an und morgen lade ich dann eine neue Version hoch, ok?
passt, danke für deine
am 16.08.2010 - 15:59 Uhr
passt, danke für deine bemühungen! :)
Exterior, hast du den fehler
am 18.08.2010 - 09:32 Uhr
Exterior, hast du den fehler beheben können? danke für deine mühen!
Sorry, kam noch nicht dazu,
am 18.08.2010 - 14:22 Uhr
Sorry, kam noch nicht dazu, weil auf meiner Seite ein blöder Fehler aufgetaucht ist, um den ich mich bisher die ganze Zeit kümmern musste -,-' Aber ich schaue es mir heute nochmal an.
So, habe mir jetzt mal eine
am 18.08.2010 - 23:19 Uhr
So, habe mir jetzt mal eine D5-Testinstallation angelegt und das ganze überarbeitet, jetzt dürfte es auch mit D5 klappen.
Unter admin/settings/mail_blacklist hat man wie gesagt die Konfigurationsseite und kann dort die Mail-Services eintragen, die nicht zugelassen werden sollen (als Standard stehen bereits ein paar Trashmail-Services drin, kann man aber auch rausnehmen).
Wichtig ist, dass man die verschiedenen Anbieter mit Leerzeichen unterteilt (wie im Standard-Eintrag zu sehen), weil ich der Einfachkeit halber nur einen Explode auf Leerzeichen ausführe.
Download von Drupex.de
wow, da hattest du ja echt
am 18.08.2010 - 23:51 Uhr
wow, da hattest du ja echt aufwand wegen mir :-) vielen Dank, nun klappt es einwandfrei! Nur noch eine letzte Frage: Bestehende Benutzer, welche sich mit einer Hotmail-Adresse registriert haben, könne sich nun immer noch anmelden oder? Das Modul greift ja nur beim Registrierungsformular ein oder?
mfg
Ja, das Modul greift nur beim
am 18.08.2010 - 23:55 Uhr
Ja, das Modul greift nur beim Standard-Registrierungsformular unter user/register. Bestehende User sind also nicht betroffen und auch, wenn du als Admin selbst User anlegst, greift das Modul nicht ein.