E-Mails von Oracle APEX senden

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

Bevor Sie APEX_MAIL verwenden, müssen Sie einen SMTP-Server konfigurieren, der E-Mails von Oracle APEX zustellt. Oracle APEX on Autonomous AI 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. Ermitteln Sie den SMTP-Verbindungsendpunkt für Email Delivery. In Schritt 4 konfigurieren Sie den Endpunkt als SMTP-Host in Ihrer APEX-Instanz. Sie müssen möglicherweise zusätzliche Oracle Cloud Infrastructure-Regionen abonnieren, wenn Email Delivery in Ihrer aktuellen Region nicht zur Verfügung steht. 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. Melden Sie sich mit einem SQL-Client als ADMIN-Benutzer bei der Autonomous AI Database an, 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)
    Beispiel:
    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 autonome KI-Datenbank 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 autonome KI-Datenbank 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 die E-Mail-Zustellung in Ihrer 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 dazu können Sie die Ansichten APEX_MAIL_QUEUE und APEX_MAIL_LOG mit einem SQL-Client abfragen.

Hinweise zum Senden von E-Mails von Oracle APEX

Bietet Hinweise für die Arbeit mit E-Mail-Providern in Oracle APEX von einer autonomen KI-Datenbankinstanz.

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 aktualisieren oder entfernen oder den Instanzparameter WORKSPACE_EMAIL_MAXIMUM festlegen. 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.