Skip to content

SMTP notifications ​

JumpCLI currently uses its own account and product-notification flow. Welcome, password recovery, password-change, registration-review, account-status, and free test-plan notifications are sent by the JumpCLI product service. When Casdoor OIDC is integrated in the future, authentication codes and identity-provider verification mail will be managed by Casdoor; product notifications remain in JumpCLI.

Verified SMTP service ​

The production server has verified AWS SES Mail Manager SMTP: port 587, STARTTLS, authentication, and the NOOP command all pass. The sender envelope notify@send.jumcli.com is accepted by the service; the test delivered no email.

send.jumcli.com is a subdomain dedicated to sending mail and does not need an A record. Continue to maintain its sender identity, DKIM, and SPF/DMARC records at the mail provider.

Recommended address convention:

AddressPurposeExternal display
notify@send.jumcli.comSystem transactional notificationsDoes not accept replies
ops@send.jumcli.comOperations alertsInternal use only
support@send.jumcli.comHuman supportMust receive and handle replies

Notification-trigger policy ​

Mail must be delivered after a business event is placed on an asynchronous queue. Do not connect to SMTP synchronously during a registration, payment, or generation request. Record delivery failures with auditable status and retry them; notify operators after the retry limit is exceeded.

EventRecipientSent by defaultNotes
Account registration succeedsUserYesWelcome mail with the path for immediate account sign-in.
Registration approval or rejectionUserYesProvides the next step for sign-in or contacting support.
Password reset or changeUserYesSecurity-sensitive actions must be audited and notified to the account owner.
Account deactivation or reactivationUserYesNotify the account owner asynchronously after an operational status change.
Free test-plan activation or cancellationUserYesState clearly that no payment obligation is created.
Payment success, refund, or delayed activationUser, operatorNot integratedDepends on future payment-server callbacks and fulfillment results.
Subscription renewal or low balanceUserNot integratedEnable after formal plans and notification preferences are released.
Image-generation job failureUserNot integratedEnable after user notification preferences and deduplication are released.
Permanent mail failure, payment callback signature failure, or service exceptionOperatorNot integratedFirst integrate an operator alert channel; application logs alone are insufficient.

Configuration ​

Prepare the following for each sender:

  • SMTP host, port, and TLS mode.
  • Sender name and address.
  • Credential references readable only by the server.
  • Reasonable connection and send timeouts.
  • Operator-alert recipients and user notification preferences.

Pre-launch validation ​

  1. First perform SMTP authentication, TLS, and NOOP checks without writing credentials to logs.
  2. After configuring the product-mail delivery module, send one real test email to a controlled mailbox.
  3. Check sender, subject, language, SPF/DKIM, spam classification, and delivery status.
  4. Simulate one temporary failure and one permanent failure, confirming retries and operator alerts fire correctly.
  5. Test Casdoor and JumpCLI separately; do not assume one configuration automatically covers the other.

Current status ​

JumpCLI asynchronously processes welcome mail, password resets, password changes, registration review outcomes, account deactivation/reactivation, and free test-plan activation/cancellation notifications through a persistent mail queue. Failures retry with backoff and retain permanent failure records after the limit. Payment, refunds, Casdoor authentication, balance warnings, and formal-plan notifications still depend on their respective production integrations and must not be claimed as automatically delivered before those integrations are complete.

Security principles ​

SMTP passwords must be stored in secret management or environment configuration, never in Markdown, frontend setting displays, ticket screenshots, or downloadable logs. For rotation, prepare a new reference, verify it, then revoke the old reference.

JumpCLI documentation is maintained in a separate repository.