Blog Sections Open

Fixing eForm Email Encoding Problems on PHP 5.3

If eForm mail arrives with broken Cyrillic text, the root cause is usually encoding handoff, not the form fields themselves.

A classic eForm failure mode on older PHP stacks is mail that arrives with correct Latin characters but broken Cyrillic text. That usually means the transport succeeds, while the character set is lost somewhere between the form payload, PHPMailer headers, and the mail server.

Typical Broken Output

Способ доставки: Самовывоз
Ф.И.О.: Иван Иванов

Instead of readable Cyrillic, the recipient sees mojibake. the discussion showed that the problem persisted across clean installs, version upgrades, and even PHPMailer tweaks.

What to Check First

  • Verify the site charset in Evolution CMS configuration.
  • Check how eForm and PHPMailer set the message body and subject encoding.
  • Compare behavior between older builds such as 1.0.6 and newer builds such as 1.0.8 or 1.0.9.
  • Send a control email with a tiny standalone PHP script to confirm whether the mail server itself is healthy.

Why This Matters

If a standalone script sends Cyrillic correctly but eForm does not, the bug is inside the application stack, not the hoster. That gives you a much smaller debugging surface and prevents random encoding edits in unrelated files.

Practical Recommendation

Keep the entire form path in one charset, confirm the mailer class matches that charset, and test both subject and body. On older Evolution CMS projects it is worth pinning the exact eForm and PHPMailer combination that is known to work on the target PHP version instead of assuming all legacy combinations behave identically.

Newer post

When the PHx replace Modifier Does Not Work

A practical way to debug PHx replace modifier failures in Evolution CMS when placeholder values are not transformed as expected.

Older post

Rewriting Ditto Pagination Links Without Breaking the Query String

How to change Ditto pagination URLs in Evolution CMS while keeping the pagination parameter working correctly.