URL überprüfen

 

www.4AP.de - ABAP Syntaxbeispiel: URL überprüfen

Beispielcoding: HTTP URL überprüfen (kopieren erlaubt aber auf eigene Gefahr :-))

Anlass war eine E-Mail-Adresse zu verifizieren. Es sollten keine *@gmx.de oder ähnliche private Mailaccounts verwendet werden dürfen. Daher folgender Ansatz: Auschlussliste für ganze Domains und anschließendes Prüfen, ob die Domain ereichbar ist. Und das ganze mit ABAP-Mitteln.

*
* Coded by Thorsten Neubüser - www.4ap.de
*

* SMTP ( E-Mail ) Adresse des Warenempfängers prüfen
  IF p_shiptoparty-email = ''.
    RAISE email_domain_not_allowed.
  ELSE"  P_SHIPTOPARTY-email = ''
    DATA: help_mail_name TYPE ad_smtpadr,
          help_mail_domain TYPE ad_smtpadr.
*   Domain extrahieren
    SPLIT p_shiptoparty-email AT '@' INTO
      help_mail_name help_mail_domain.
* ist die Domain in der Ausschlusstabelle enthalten?
    SELECT SINGLE email FROM zwebshop_r_email
      INTO help_mail_domain
     WHERE email = help_mail_domain.
    IF sy-subrc = 0" SELECT SINGLE email FROM zwebshop_r_email
      RAISE email_domain_not_allowed.
    ENDIF" sy-subrc = 0. " SELECT SINGLE email FROM zwebshop_r_email
* kann man die Domain aufrufen?
    data: RESULT(255OCCURS 100 WITH HEADER LINE"No max length
          CMD(254). "Max length = 254 Bytes
    CONCATENATE 'ping www.' help_mail_domain into cmd.
    CALL 'SYSTEM' ID 'COMMAND' FIELD CMD
                  ID 'TAB'     FIELD RESULT-*SYS*.
*   Store result
    if sy-subrc ne 0" CALL 'SYSTEM'
      RAISE email_domain_not_allowed.
    endif" sy-subrc ne 0. " CALL 'SYSTEM'
  ENDIF" P_SHIPTOPARTY-email = ''