E-Mails von Oracle APEX senden

Mit dem Package APEX_MAIL können Sie E-Mails von Oracle APEX-Anwendungen senden, die in Autonomous Database bereitgestellt sind.

Bevor Sie APEX_MAIL verwenden, müssen Sie einen SMTP-Server konfigurieren, der E-Mails von Oracle APEX zustellt. Oracle APEX auf Autonomous Database unterstützt den Oracle Cloud Infrastructure Email Delivery-Service sowie E-Mail-Provider von Drittanbietern.

OCI Email Delivery konfigurieren

Ihre Oracle APEX-Instanz kann den OCI Email Delivery-Service verwenden, um E-Mails aus APEX-Anwendungen zu senden.

So konfigurieren Sie die APEX_MAIL-Funktionalität für die Verwendung des OCI Email Delivery-Service:

  1. Geben Sie den SMTP-Verbindungsendpunkt für Email Delivery an. In Schritt 4 konfigurieren Sie den Endpunkt als SMTP-Host in Ihrer APEX-Instanz. Möglicherweise müssen Sie zusätzliche Oracle Cloud Infrastructure-Regionen abonnieren, wenn Email Delivery in Ihrer aktuellen Region nicht verfügbar ist. Weitere Informationen finden Sie unter SMTP-Verbindung konfigurieren.
  2. Generieren Sie SMTP-Zugangsdaten für Email Delivery. Die APEX-Instanz verwendet Zugangsdaten zur Authentifizierung bei Email Delivery-Servern, wenn Sie E-Mails senden. Weitere Informationen finden Sie unter SMTP-Zugangsdaten erstellen.
  3. Erstellen Sie einen genehmigten Absender für Email Delivery. Sie müssen diesen Schritt für alle E-Mail-Adressen ausführen, die Sie als "Von" mit APEX_MAIL.SEND-Aufrufen, als E-Mail-Absenderadresse der Anwendungen in Ihren Apps oder im Instanzparameter SMTP_FROM verwenden. Weitere Informationen finden Sie unter Genehmigte Absender verwalten.
  4. Stellen Sie mit einem SQL-Client eine Verbindung zu Autonomous Database als ADMIN-Benutzer her, und konfigurieren Sie die folgenden SMTP-Parameter mit APEX_INSTANCE_ADMIN.SET_PARAMETER:
    • SMTP_HOST_ADDRESS: Gibt den SMTP-Verbindungsendpunkt aus Schritt 1 an
    • SMTP_USERNAME: Gibt den Benutzernamen der SMTP-Zugangsdaten aus Schritt 2 an
    • SMTP_PASSWORD: Gibt das Kennwort der SMTP-Zugangsdaten aus Schritt 2 an
    • SMTP_HOST_PORT: Behalten Sie den Standardwert für diesen Parameter bei (587)
    • SMTP_TLS_MODE: Standardwert für diesen Parameter beibehalten (STARTTLS)
    Beispiele:
    BEGIN
      APEX_INSTANCE_ADMIN.SET_PARAMETER('SMTP_HOST_ADDRESS', 'smtp.email.us-phoenix-1.oci.oraclecloud.com');
      APEX_INSTANCE_ADMIN.SET_PARAMETER('SMTP_USERNAME', 'ocid1.user.oc1.username');
      APEX_INSTANCE_ADMIN.SET_PARAMETER('SMTP_PASSWORD', 'password');
      COMMIT;
    END;
    /

    Weitere Informationen finden Sie unter APEX_INSTANCE_ADMIN.

Weitere Informationen finden Sie unter Überblick über Email Delivery.

E-Mail-Provider von Drittanbietern konfigurieren

Ihre Oracle APEX-Instanz kann E-Mail-Provider von Drittanbietern verwenden, um E-Mails aus APEX-Anwendungen zu senden.

Bevor Sie einen Drittanbieter-E-Mail-Provider in APEX konfigurieren, stellen Sie sicher, dass die folgenden Voraussetzungen erfüllt sind:

  • Ihre Autonomous Database muss so konfiguriert sein, dass sie einen privaten Endpunkt verwendet.
  • Der SMTP-Endpunkt des E-Mail-Providers (Port 25 oder 587) muss über das virtuelle Cloud-Netzwerk (VCN) und das Subnetz, in dem Ihre Autonomous Database bereitgestellt wird, zugänglich sein.

Weitere Informationen finden Sie unter Netzwerkzugriff mit privaten Endpunkten einrichten.

Nachdem die oben genannten Voraussetzungen erfüllt sind:

  1. Fügen Sie die folgende Access Control-Liste für den SMTP-Endpunkt als ADMIN hinzu (beachten Sie den Parameter private_target):
    BEGIN
      DBMS_NETWORK_ACL_ADMIN.APPEND_HOST_ACE(
        host => 'smtp.example.com',
        ace => XS$ACE_TYPE(
          privilege_list => XS$NAME_LIST('SMTP'),
          principal_name => APEX_APPLICATION.g_flow_schema_owner,
          principal_type => XS_ACL.ptype_db),
        private_target => true);
    END;
    /
    Hinweis

    Wenn Sie die Datenbankeigenschaft ROUTE_OUTBOUND_CONNECTIONS auf PRIVATE_ENDPOINT setzen, müssen Sie keine Access-Control-Listen für einzelne SMTP-Endpunkte definieren, um von APEX aus darauf zuzugreifen. Weitere Informationen finden Sie unter Erweiterte Sicherheit für ausgehende Verbindungen mit privaten Endpunkten.
  2. Melden Sie sich mit einem SQL-Client als ADMIN-Benutzer bei der Autonomous Database an, und konfigurieren Sie die folgenden SMTP-Parameter mit APEX_INSTANCE_ADMIN.SET_PARAMETER. Wenn Ihr Drittanbieter keine Authentifizierung benötigt, überspringen Sie die Parameter SMTP_USERNAME und SMTP_PASSWORD.
    • SMTP_HOST_ADDRESS: Gibt den SMTP-Verbindungsendpunkt aus Schritt 1 an
    • Gültige Werte für Parameter SMTP_HOST_PORT sind 25 oder 587
    • Setzen Sie den Wert für den Parameter SMTP_TLS_MODE auf Y.

    Beispiel:

    BEGIN
      APEX_INSTANCE_ADMIN.SET_PARAMETER('SMTP_HOST_ADDRESS', 'smtp.example.com');
      APEX_INSTANCE_ADMIN.SET_PARAMETER('SMTP_HOST_PORT', '587');
      APEX_INSTANCE_ADMIN.SET_PARAMETER('SMTP_TLS_MODE', 'Y');
      APEX_INSTANCE_ADMIN.SET_PARAMETER('SMTP_USERNAME', 'username');
      APEX_INSTANCE_ADMIN.SET_PARAMETER('SMTP_PASSWORD', 'password');
      COMMIT;
    END;
    /

    Weitere Informationen finden Sie unter APEX_INSTANCE_ADMIN.

E-Mail-Konfiguration validieren

Zeigt die Schritte an, um zu bestätigen, dass Ihr E-Mail-Provider mit APEX_MAIL verwendet werden kann.

  1. Validieren Sie die E-Mail-Konfigurationseinstellungen mit einem SQL-Client als ADMIN:
    BEGIN
      APEX_INSTANCE_ADMIN.VALIDATE_EMAIL_CONFIG;
    END;
    /

    Wenn Fehler gemeldet werden (z.B. "ORA-29279: SMTP permanent error: 535 Authentication credentials invalid"), passen Sie die SMTP-Parameter oder die Konfiguration des virtuellen Cloud-Netzwerks (VCN) an, und wiederholen Sie den Validierungsschritt.

    Weitere Informationen finden Sie unter APEX_INSTANCE_ADMIN.

  2. Senden Sie eine Test-E-Mail mit APEX SQL Workshop. Wenn Sie OCI Email Delivery verwenden, stellen Sie sicher, dass der Parameter p_from mit einem der genehmigten Absender übereinstimmt. Beispiel:
    BEGIN
      APEX_MAIL.SEND(
        p_from => 'alice@example.com',
        p_to   => 'bob@example.com',
        p_subj => 'Email from Oracle Autonomous Database',
        p_body => 'Sent using APEX_MAIL');
    END;
    /

    Weitere Informationen finden Sie unter APEX_MAIL.

  3. So überwachen Sie den E-Mail-Versand in der APEX-Instanz:
    1. Melden Sie sich bei APEX Administration Services an.
    2. Öffnen Sie die Seite "Instanz verwalten".
    3. Klicken Sie im Abschnitt "Metadaten verwalten" auf den Link "E-Mail-Queue".
    Alternativ fragen Sie die Ansichten APEX_MAIL_QUEUE und APEX_MAIL_LOG mit einem SQL-Client ab.

Hinweise zum Senden von E-Mails von Oracle APEX

Stellt Notizen für die Arbeit mit E-Mail-Providern in Oracle APEX aus einer Autonomous Database-Instanz bereit.

Beachten Sie Folgendes, wenn Sie mit E-Mail-Providern in Oracle APEX arbeiten:

  • Es gibt ein Standardlimit von 1.000 E-Mails pro Arbeitsbereich in einem Zeitraum von 24 Stunden. Sie können dieses Limit in Oracle APEX Administration Services oder durch Festlegen des Instanzparameters WORKSPACE_EMAIL_MAXIMUM aktualisieren oder entfernen. Wenn Sie den OCI Email Delivery-Service verwenden, kann der Service zusätzliche Einschränkungen auferlegen.
  • Wenn Sie den OCI Email Delivery-Service verwenden, muss ein genehmigter Absender für alle möglichen Absenderadressen eingerichtet werden. Andernfalls wird die E-Mail abgelehnt. Weitere Informationen finden Sie unter Genehmigte Absender verwalten.