Setting up account activation and email verification
To set up email verification, your identity schema must have an email in its traits and add
{
  "ory.sh/kratos": {
    "verification": {
      "via": "email"
    }
  }
}
to it, for example:
{
  "$id": "https://schemas.ory.sh/presets/kratos/quickstart/email-password/identity.schema.json",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "title": "Person",
  "type": "object",
  "properties": {
    "traits": {
      "type": "object",
      "properties": {
        "email": {
          "type": "string",
          "format": "email",
          "title": "E-Mail",
          "minLength": 3,
+         "ory.sh/kratos": {
+           "verification": {
+             "via": "email"
+           }
+         }
        }
      }
    }
  }
}
Email verification supports sending out a recovery link to an email address. For this to work, you must have the courier SMTP connection configured in your config file:
 # Ory Identities
+courier:
+  smtp:
+    connection_uri: smtps://username:password@smtp-server:1234/
 # ...
You also need to enable verification:
 selfservice:
   flows:
     # login ...
     # registration...
+    verification:
+      enabled: true
+      ui_url: http://127.0.0.1:4455/verification
 # ...
That all that's needed! For more information on implementing the UI and details about the payloads, head over to the Email and Phone Verification and Account Activation Documentation!