[PR #22540] feat: validate email according to RFC 5322 #29965

Closed
opened 2026-02-21 20:46:35 -05:00 by yindo · 0 comments
Owner

Original Pull Request: https://github.com/langgenius/dify/pull/22540

State: closed
Merged: Yes


Important

  1. Make sure you have read our contribution guidelines
  2. Ensure there is an associated issue and you have been assigned to it
  3. Use the correct syntax to link this PR: Fixes #<issue number>.

Summary

This PR updates the email validation function in the EmailChangeModal component to comply with RFC 5322 standards. The change replaces the basic email regex pattern with a more comprehensive RFC 5322-compliant regex pattern and adds a length validation to ensure email addresses don't exceed 254 characters.

Changes made:

  • Updated email validation regex from a simple pattern to RFC 5322 compliant pattern
  • Added email length validation (max 254 characters) as per RFC specifications
  • Enhanced validation to support more valid email address formats including special characters allowed by RFC 5322

Motivation:
The previous email validation was too restrictive and didn't follow RFC 5322 standards, potentially rejecting valid email addresses. This update ensures better compatibility with legitimate email formats while maintaining security.

Screenshots

Before After
Basic email regex validation with limited character support RFC 5322 compliant validation with comprehensive character support and length validation

Checklist

  • This change requires a documentation update, included: Dify Document
  • I understand that this PR may be closed in case there was no previous discussion or issues. (This doesn't apply to typos!)
  • I've added a test for each change that was introduced, and I tried as much as possible to make a single atomic change.
  • I've updated the documentation accordingly.
  • I ran dev/reformat(backend) and cd web && npx lint-staged(frontend) to appease the lint gods
**Original Pull Request:** https://github.com/langgenius/dify/pull/22540 **State:** closed **Merged:** Yes --- > [!IMPORTANT] > > 1. Make sure you have read our [contribution guidelines](https://github.com/langgenius/dify/blob/main/CONTRIBUTING.md) > 2. Ensure there is an associated issue and you have been assigned to it > 3. Use the correct syntax to link this PR: `Fixes #<issue number>`. ## Summary This PR updates the email validation function in the EmailChangeModal component to comply with RFC 5322 standards. The change replaces the basic email regex pattern with a more comprehensive RFC 5322-compliant regex pattern and adds a length validation to ensure email addresses don't exceed 254 characters. **Changes made:** - Updated email validation regex from a simple pattern to RFC 5322 compliant pattern - Added email length validation (max 254 characters) as per RFC specifications - Enhanced validation to support more valid email address formats including special characters allowed by RFC 5322 **Motivation:** The previous email validation was too restrictive and didn't follow RFC 5322 standards, potentially rejecting valid email addresses. This update ensures better compatibility with legitimate email formats while maintaining security. ## Screenshots | Before | After | |--------|-------| | Basic email regex validation with limited character support | RFC 5322 compliant validation with comprehensive character support and length validation | ## Checklist - [ ] This change requires a documentation update, included: [Dify Document](https://github.com/langgenius/dify-docs) - [x] I understand that this PR may be closed in case there was no previous discussion or issues. (This doesn't apply to typos!) - [x] I've added a test for each change that was introduced, and I tried as much as possible to make a single atomic change. - [x] I've updated the documentation accordingly. - [x] I ran `dev/reformat`(backend) and `cd web && npx lint-staged`(frontend) to appease the lint gods
yindo added the pull-request label 2026-02-21 20:46:35 -05:00
yindo closed this issue 2026-02-21 20:46:35 -05:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: langgenius/dify#29965