Details For Email Delivery

Logging details for Email Delivery logs.

Resources

  • emaildomain

Log Categories

API value (ID): Console (Display Name) Description
emaildelivery.emaildomain.outboundaccepted emaildelivery.emaildomain.outboundaccepted Inbound email successful and failed submissions logs.
emaildelivery.emaildomain.outboundrelayed emaildelivery.emaildomain.outboundrelayed Logs for successful and failed email submissions for outbound delivery.

Policies

EMAIL_DOMAIN_UPDATE permission is required, along with Logging policies, to perform Logging-related operations. For details on Email Delivery policies, see Details For the Email Delivery Service.

Contents of an OutboundAccepted Email Log

Property Description Example
recipient Email address of the recipient. This may not be present in logs with error type Authorization failure, Reset, or Disconnected. user@example.com
sender The first email address in the "From:" header in the email message. support@example.com
action Provides context for the data in the log. Supported values for Acceptance Logs:
  • Accept: Log provides information around acceptance status for an email.

Automated processors must tolerate logs with unrecognized action values.

accept
errorType

Provides information for troubleshooting issues. This is omitted for successfully accepted emails.

Supported values for acceptance logs:
  • Recepient suppressed: Email was suppressed and not relayed.
  • Authorization failure: Email was not accepted due to authorization failures.
  • Invalid Recipient: Email was not accepted due to invalid recipient address.
  • Daily Limit reached: Email could not be accepted due to limits.
  • Sender Rate Limit reached: Email could not be accepted due to limits.
  • Byte limit exceeded: Email could not be accepted due to message size limit exceeded.
  • Reset: The client cancelled the mail transaction (via SMTP RSET).
  • Disconnected: The client connection to the service was lost before the mail transaction was complete.
  • Message parse error: Email could not be accepted due to invalid message format. Only authorization failures are logged.

Oracle reserves the right to add new values to this field as needed, so parsers must be able to tolerate unrecognized values.

Daily limit reached
smtpStatus SMTP status in acceptance logs will contain the SMTP error, or status returned to the SMTP submission client for this recipient. 250 2.1.5 user@example.com and options Ok
messageId MessageId is a unique ID that represents an email send operation. It is used to track an email end-to-end. MessageId is either provided by the customer, or will be generated by the MTA while processing email. This will not be present in acceptance logs that fail before receiving message data. 06a9aa8e-0542-4ddf-8255-ec9c2f5e02a3

@smtpf-ad3-fd1-303-us-phoenix-1.imtaad3.vcndpphx.oraclevcn.com

See https://datatracker.ietf.org/doc/html/rfc5322#section-3.6.4 for more information.

envelopeSender The initial envelope sender (MAIL FROM) address provided when the email was submitted, which is used to authorize email sending. Unlike Body:data.sender (aka header From), this is provided for acceptance failure cases, as this is available for failures prior to transfer of message content. support@example.com
principalId OCID of the user attempting to submit email over the SMTP submission protocol. Only provided for authorization failure logs. ocid1.user.oc1.<unique_ID>
senderId

Approved sender OCID. This will be the OCID associated with the Body:data.sender if that is present, otherwise, it will be the OCID associated with Body:data.envelopeSender. This may not be present on authorization failures.

ocid1.emailsender.oc1.phx.<unique_ID>
senderCompartmentId

Compartment OCID of the approved sender. This will be the compartment OCID associated with the Body:data.senderId. This may not be present on authorization failures.

ocid1.compartment.oc1..<unique_ID>
headers (Available in future) Configurable headers at approved sender level. Set up through a support request, and is a maximum of four headers.
{
 "X-Campaign-ID":"campaign1",
 "Recipient-Group-ID": "group1",
 "Sub-Account-ID": "account1"
}
receivingDomain Email domain of the recipient. Although this is redundant with the domain name portion of the recipient field, this can be useful for aggregation views of the logs. example.com
messageSizeInKiB Message size in kibibytes (rounded to an integer with rounding mode ceiling). 5
authzOpcRequestId OPC request ID for the authorization call made from the Email Delivery Service to Identity, to authorize an approved sender. 6D6E701D166D72B8BCB7881647CDAAAA/

5590913E23F541ECDFA486FE9C611B12/

40C21F5CB148AF3C391AC98B21D81412

message A summary of the log event. Accepted email support@example.com → user@example.com
ingressType

Provides the source of the email submission for troubleshooting issues. This is omitted for successfully accepted emails.

Supported values are:
  • SubmitEmail: Emails submitted through HTTPS Submit API.
  • SMTP: Emails submitted through SMTP endpoint.

SubmitEmail

SMTP

Log Samples for OutboundAccepted Email Logs

Successful acceptance:

{
  "specversion": "1.0",
  "type": "com.oraclecloud.emaildelivery.emaildomain.outboundaccepted",
  "source": "example.com"
  "time": "2021-02-20T09:01:40.000Z",
  "id": "dccc219d-6733-4c68-b357-efeee378fb02",
  "oracle": {
    "logid": "ocid1.log.oc1.phx.<unique_ID>"
  },
  "data": {
    "action": "accept",
    "messageId": "<unique_ID>",
    "sender": "support@example.com"
    "senderCompartmentId": "ocid1.compartment.oc1..<unique_ID>",
    "senderId": "ocid1.emailsender.oc1.phx.<unique_ID>",
    "recipient": "user@example.com",
    "messageSizeInKiB": 2,
    "receivingDomain": "example.com",
    "smtpStatus": "250 2.1.5 user@example.com and options Ok",
    "headers": {
      "X-Campaign-ID": "campaign1",
      "Recipient-Group-ID": "group1",
      "Sub-Account-ID": "account1"
    },
    "message": "Accepted email support@example.com → user@example.com"
  }
}

Failed acceptance (suppressed):

{
  "specversion": "1.0",
  "type": "com.oraclecloud.emaildelivery.emaildomain.outboundaccepted",
  "source": "example.com",
  "time": "2021-02-20T09:01:40.000Z",
  "id": "3391f649-909e-4a0d-a07a-ee222a0d2714",
  "oracle": {
    "logid": "ocid1.log.oc1.phx.<unique_ID>"
  },
  "data": {
      "action": "accept",
      "ingressType": "SubmitEmail",
      "envelopeSender": "support@example.com",
      "senderCompartmentId": "ocid1.compartment.oc1..<unique_ID>",
      "senderId": "ocid1.emailsender.oc1.phx.<unique_ID>",
      "recipient": "user@example.com",
      "errorType": "Recipient suppressed",
      "message": "Suppressed email support@example.com → user@example.com"
  }
}

Daily rate limit exceed:

{
  "specversion": "1.0",
  "type": "com.oraclecloud.emaildelivery.emaildomain.outboundaccepted",
  "source": "example.com",
  "time": "2021-02-20T09:01:40.000Z",
  "id": "3391f649-909e-4a0d-a07a-ee222a0d2714",
  "oracle": {
    "logid": "ocid1.log.oc1.phx.<unique_ID>"
  },
  "data": {
      "action": "accept",
      "ingressType": "SubmitEmail",
      "sender": "support@example.com",
      "senderCompartmentId": "ocid1.compartment.oc1..<unique_ID>",
      "senderId": "ocid1.emailsender.oc1.phx.<unique_ID>",
      "recipient": "user@example.com",
      "errorType": "Daily limit reached",
      "message": "Rejected email support@example.com → user@example.com: Daily limit 50000 exceeded"
  }
}

Sender rate limit exceeded:

{
  "specversion": "1.0",
  "type": "com.oraclecloud.emaildelivery.emaildomain.outboundaccepted",
  "source": "example.com",
  "time": "2021-02-20T09:01:40.000Z",
  "id": "53bb943a-f04a-402c-8de0-74e387ca2d08",
  "oracle": {
    "logid": "ocid1.log.oc1.phx.<unique_ID>"
  },
  "data": {
      "action": "accept",
      "ingressType": "SMTP",
      "sender": "support@example.com",
      "senderCompartmentId": "ocid1.compartment.oc1..<unique_ID>",
      "senderId": "ocid1.emailsender.oc1.phx.<unique_ID>",
      "recipient": "user@example.com",
      "errorType": "Sender rate limit reached",
      "message": "Rejected email support@example.com → user@example.com: Sender rate limit 18000 exceeded"
  }
}

Byte limit exceeded:

{
  "specversion": "1.0",
  "type": "com.oraclecloud.emaildelivery.emaildomain.outboundaccepted",
  "source": "example.com",
  "time": "2021-02-20T09:01:40.000Z",
  "id": "7d674693-b394-499d-9ce5-be2d1cbc796e",
  "oracle": {
    "logid": "ocid1.log.oc1.phx.<unique_ID>"
  },
  "data": {
      "action": "accept",
      "ingressType": "SMTP",
      "sender": "support@example.com",
      "senderCompartmentId": "ocid1.compartment.oc1..<unique_ID>",
      "senderId": "ocid1.emailsender.oc1.phx.<unique_ID>",
      "recipient": "user@example.com",
      "errorType": "Byte limit exceeded",
      "message": "Rejected email support@example.com → user@example.com: Byte limit 2MB exceeded"
  }
}

Recipient address rejected (Inbound SMTP server):

{
  "specversion": "1.0",
  "type": "com.oraclecloud.emaildelivery.emaildomain.outboundaccepted",
  "source": "example.com",
  "time": "2021-02-20T09:01:40.000Z",
  "id": "7d674693-b394-499d-9ce5-be2d1cbc796e",
  "oracle": {
    "logid": "ocid1.log.oc1.phx.<unique_ID>"
  },
  "data": {
      "action": "accept",
      "ingressType": "SMTP",
      "envelopeSender": "support@example.com",
      "senderCompartmentId": "ocid1.compartment.oc1..<unique_ID>",
      "senderId": "ocid1.emailsender.oc1.phx.<unique_ID>",
      "recipient": "user@test",
      "errorType": "Invalid recipient",
      "message": "Rejected email support@example.com → user@test.com: Invalid recipient address"
  }
}

Authorization failure:

{
  "specversion": "1.0",
  "type": "com.oraclecloud.emaildelivery.emaildomain.outboundaccepted",
  "source": "example.com",
  "time": "2021-02-20T09:01:40.000Z",
  "id": "7d674693-b394-499d-9ce5-be2d1cbc796e",
  "oracle": {
    "logid": "ocid1.log.oc1.phx.<unique_ID>"
  },
  "data": {
    "action": "accept",
    "ingressType": "SubmitEmail",
    "envelopeSender": "support@example.com",
    "principalId": "ocid1.user.oc1.<unique_ID>",
    "errorType": "Authorization failure",
    "authzOpcRequestId": "6D6E701D166D72B8BCB7881647CDAAAA/5590913E23F541ECDFA486FE9C611B12/40C21F5CB148AF3C391AC98B21D81412",
    "message": "Email approved Body From address: support@example.com is not authorized or not found"
  }
}

Reset:

{
  "specversion": "1.0",
  "type": "com.oraclecloud.emaildelivery.emaildomain.outboundaccepted",
  "source": "example.com",
  "time": "2021-02-20T09:01:40.000Z",
  "id": "7d674693-b394-499d-9ce5-be2d1cbc796e",
  "oracle": {
    "logid": "ocid1.log.oc1.phx.<unique_ID>"
  },
  "data": {
      "action": "accept",
      "ingressType": "SubmitEmail",
      "envelopeSender": "support@example.com",
      "senderCompartmentId": "ocid1.compartment.oc1..<unique_ID>",
      "senderId": "ocid1.emailsender.oc1.phx.<unique_ID>",
      "errorType": "Reset",
      "message": "Rejected email from support@example.com: SMTP client reset"
  }
}

Disconnected:

{
  "specversion": "1.0",
  "type": "com.oraclecloud.emaildelivery.emaildomain.outboundaccepted",
  "source": "example.com",
  "time": "2021-02-20T09:01:40.000Z",
  "id": "7d674693-b394-499d-9ce5-be2d1cbc796e",
  "oracle": {
    "logid": "ocid1.log.oc1.phx.<unique_ID>"
  },
  "data": {
      "action": "accept",
      "ingressType": "SubmitEmail",
      "envelopeSender": "support@example.com",
      "senderCompartmentId": "ocid1.compartment.oc1..<unique_ID>",
      "senderId": "ocid1.emailsender.oc1.phx.<unique_ID>",
      "errorType": "Disconnected",
      "message": "Rejected email from support@example.com: SMTP client disconnected"
  }
}

Contents of an OutboundRelayed Email Log

Property Description Example
recipient Email address of the recipient. user@example.com
sender "From:" header in the email message. support@example.com
action
Provides context for the data in the log. Supported values for relayed, bounce, and complaint logs:
  • Relay: Successfully relayed to the receiving mail server.
  • Bounce: Bounced back from receiving mail server.
  • Complaint: Recipient marked email as spam, and mailbox provider supports a complaint feedback loop.

    Note: Not all receiving domains provide complaint feedback.

Automated processors must tolerate logs with unrecognized action values.

  • relay
  • bounce
  • complaint
errorType

Provides information for troubleshooting issues. Only present in "Bounce" logs.

Supported values for relayed, bounce, and compliant logs are the following:
  • Soft bounce: A transient error from the receiving server resulting in an undelivered message.
  • Hard bounce: A permanent error from the receiving server, resulting in an undelivered message, and the recipient's address being added to the suppression list.
soft
bounceCategory Category of bounce. Only present in "Bounce" logs. Possible values:
  • bad-configuration
  • bad-connection
  • bad-domain
  • bad-mailbox
  • content-related
  • inactive-mailbox
  • invalid-sender
  • message-expired
  • no-answer-from-host
  • other
  • policy-related
  • protocol-errors
  • quota-issues
  • relaying-issues
  • routing-errors
  • spam-related
  • unclassified
  • virus-related
bad-mailbox
reportGeneratedTime Time when action is generated. Only present in some "Bounce" and "Complaint" logs. 2021-02-04T17:26:03.120Z
originalMessageAcceptedTime Time when the original message is accepted by the Email Delivery service. Refers to the original time stamp for bounced messages only, so this is not present in all relayed logs. 2021-02-04T17:26:03.120Z
bounceCode An SMTP response code, such as 5.5.0, 4.7.1. Only present in "Bounce" logs. See https://www.ietf.org/rfc/rfc1893.txt for more information. 5.5.0
smtpStatus SMTP status includes the information generated by a remote SMTP server on the internet, and is usually not controlled by Email Delivery.

"250 2.1.5 Recipient ok"

"550 5.1.1 <user@example.com> recipient does not exist here."

"550 5.1.1 unknown or illegal alias:

b0c-4031-8d85-33d136229fc3-bmta-ad1-fd1-101-us-ashburn-1

@iad1.rp.oracleemaildelivery.com""550 5.7.0 Local Policy Violation"

messageId MessageId is a unique ID that represents an email send operation. It is used to track an email end-to-end. MessageId is either provided by the customer, or will be generated by the MTA while processing email. 06a9aa8e-0542-4ddf-8255-ec9c2f5e02a3

@smtpf-ad3-fd1-303-us-phoenix-1.imtaad3.vcndpphx.oraclevcn.com

See https://datatracker.ietf.org/doc/html/rfc5322#section-3.6.4 for more information.

senderId Approved sender OCID. ocid1.emailsender.oc1.phx.<unique_ID>
senderCompartmentId Compartment OCID of the approved sender. ocid1.compartment.oc1..<unique_ID>
sourceAddress Source IP is the external public IP address used for the outgoing connection. This is only present on successful "Relay" logs, and "bounce" logs for internal hard bounces. 192.29.103.192
dkimSelector The "User" defined DKIM selector value. Only present in "Relay" logs. The DKIM selector is a term-of-art defined formally in RFC 6376. prod-phx-20191217
dkimError DKIM signing error text. Only present on "Relay" logs. "Operation cannot be started: DKIM 0 no private key for identity '@mail.integration.us-ashburn-1.ocp.oraclecloud.com'"
messageSizeInKiB Message size in kibibytes (rounded to an integer with rounding mode ceiling). 5
headers (Available in future) Configurable headers at approved sender level. Set up through a support request, and is a maximum of four headers.
{
  "X-Campaign-ID":"campaign1",
  "Recipient-Group-ID": "group1",
  "Sub-Account-ID": "account1"
}
recipientMailServer Name and IP address of the mail server on the internet to which an email relay was attempted. This is only present on successful "Relay" logs, and "bounce" logs for internal hard bounces. This field is also useful for aggregation log views.

mail-smtp-in.l.google.com

(172.217.197.26)

internalProcessingDurationInMs ("Relay" logs only) Internal delay in milliseconds from when a message is accepted by the Email Delivery service (for example, when the end-of-message-data is received by our front-end), to when the service is ready to attempt outbound delivery. 791
tlsCipher ("Relay" logs only) TLS cipher suite name.

TLS_ECDHE_RSA_WITH

_AES_128_GCM_SHA256

message A summary of the log event.

Relayed email support@example.com

-> user@example.com

sendingPoolName Applicable to dedicated IP pools only. PHXOCIInternalVMTAs

Log Samples for OutboundRelayed Email Logs

Successful relayed:

{
  "specversion": "1.0",
  "type": "com.oraclecloud.emaildelivery.emaildomain.outboundrelayed",
  "source": "example.com",
  "time": "2021-02-20T09:01:40.000Z",
  "id": "2eefd817-0a53-4be0-990c-224708aff337",
  "oracle": {
    "logid": "ocid1.log.oc1.phx.<unique_ID>"
  },
  "data": {
    "action": "relay",
    "messageId": "<unique_ID>",
    "sender": "support@example.com",
    "senderCompartmentId": "ocid1.compartment.oc1..<unique_ID>",
    "senderId": "ocid1.emailsender.oc1.phx.<unique_ID>",
    "recipient": "user@example.com",
    "receivingDomain": "example.com",
    "sourceAddress": "XXX.XX.XXX.XXX",
    "dkimSelector": "selector1",
    "messageSizeInKiB": 2,
    "smtpStatus": "250 2.1.5 Recipient ok",
    "recipientMailServer": "bmta.email.us-phoenix-1.oci.oraclecloud.com (XXX.XX.X.XXX)",
    "internalProcessingDurationInMs": 20,
    "tlsCipher": "TLS_AES_128_GCM_SHA256",
    "sendingPoolName": "PHXOCIVMTAs",
    "headers": {
      "X-Campaign-ID": "campaign1",
      "Recipient-Group-ID": "group1",
      "Sub-Account-ID": "account1"
    },
    "message": "Relayed email support@example.com → user@example.com"
  }
}

Hard bounce:

{
  "specversion": "1.0",
  "type": "com.oraclecloud.emaildelivery.emaildomain.outboundrelayed",
  "source": "example.com",
  "time": "2021-02-20T09:01:40.000Z",
  "id": "7f7fa34c-8361-4013-9dda-d43631c95a3c",
  "oracle": {
    "logid": "ocid1.log.oc1.phx.<unique_ID>"
  },
  "data": {
      "action": "bounce",
      "messageId": "<unique_ID>",
      "sender": "support@example.com",
      "senderCompartmentId": "ocid1.compartment.oc1..<unique_ID>",
      "senderId": "ocid1.emailsender.oc1.phx.<unique_ID>",
      "recipient": "user@example.com",
      "receivingDomain": "example.com",
      "errorType": "hard",
      "bounceCategory": "bad-mailbox",
      "bounceCode": "5.1.1",
      "reportGeneratedTime": "2021-02-24T22:50:22.123Z",
      "originalMessageAcceptedTime": "2021-02-23T22:50:22.123Z",
      "smtpStatus": "550 5.1.1 unknown or illegal alias: 974-4710-b440-52e9e1a70cb8-user@example.com",
      "message": "Suppressed recipient user@example.com for email from support@example.com: bad-mailbox hard bounce"
  }
}

Soft bounce:

{
  "specversion": "1.0",
  "type": "com.oraclecloud.emaildelivery.emaildomain.outboundrelayed",
  "source": "example.com",
  "time": "2021-02-20T09:01:40.000Z",
  "id": "7f7fa34c-8361-4013-9dda-d43631c95a3c",
  "oracle": {
    "logid": "ocid1.log.oc1.phx.<unique_ID>"
  },
  "data": {
      "action": "bounce",
      "messageId": "<unique_ID>",
      "sender": "support@example.com",
      "senderCompartmentId": "ocid1.compartment.oc1..<unique_ID>",
      "senderId": "ocid1.emailsender.oc1.phx.<unique_ID>",
      "recipient": "user@example.com",
      "receivingDomain": "example.com",
      "errorType": "soft",
      "bounceCategory": "spam-related",
      "bounceCode": "5.0.0",
      "reportGeneratedTime": "2021-02-24T22:50:22.123Z",
      "originalMessageAcceptedTime": "2021-02-23T22:50:22.123Z",
      "smtpStatus": "550 5.1.1 <user@example.com> User unknown; rejecting",
      "message": "Received spam-related soft bounce for email support@example.com → user@example.com"
  }
}

Complaint:

{
  "specversion": "1.0",
  "type": "com.oraclecloud.emaildelivery.emaildomain.outboundrelayed",
  "source": "example.com",
  "time": "2021-02-20T09:01:40.000Z",
  "id": "936f5f8c-0724-4321-b0d9-4c7f6cf8d043",
  "oracle": {
    "logid": "ocid1.log.oc1.phx.<unique_ID>"
  },
  "data": {
      "action": "complaint",
      "messageId": "<unique_ID>",
      "sender": "support@example.com",
      "senderCompartmentId": "ocid1.compartment.oc1..<unique_ID>",
      "senderId": "ocid1.emailsender.oc1.phx.<unique_ID>",
      "recipient": "user@example.com",
      "receivingDomain": "example.com",
      "message": "Suppressed recipient user@example.com for email from support@example.com: Email complaint"
  }
}