Where Did My Brain Go?

Quick Mail 3.2.4 Maintenance Release

Discover the latest version of Quick Mail.

I wrote Quick Mail to send an email and attachment from the WordPress dashboard.

I enjoy fixing WordPress problems and improving Quick Mail.

Quick Mail has evolved in three years. It does everything you can do with email from WordPress. You can even send private replies to comments with attachments.

Got WP-CLI? Use the quick-mail command to send Web pages and attachments from the command line.

Quick Mail 3.2.4 fixed a serious bug, that displayed a blank page on certain systems.

It Started In Russia

A computer glitch you can blame on a Russian and me.

It began after a Russian helped me add private replies to comments and a Russian translation to my Quick Mail plugin for WordPress.

I replaced several PHP string functions with their multibyte equivalents, to process Russian correctly. Sadly, one function is not always available.

How Did Russian Translation Affect Quick Mail?

In English, a character is a byte. Values can be from zero to 255. The English characters we see on a screen have values from 32 to 126. The Russian language uses multibyte characters. Russian characters use more than one byte, and require different fuctions to evaluate and process them.

If you do not understand character sets, The Absolute Minimum Every Software Developer Absolutely, Positively Must Know About Unicode and Character Sets (No Excuses!) by Joel Spolsky, is a good place to start.

If I search for “test” in a character string, PHP tests each character. The result should be correct for English. But PHP might not recognize the search subject, if each character has two or more bytes.

PHP has a set of Multibyte String Functions that understand Russian and English. These functions work for any language.

I converted several English functions to their international (multibyte) versions, to make Quick Mail work in Russian. Alas, at least one of those functions is not available on all systems.

WordPress Compatibility

WordPress 3.2.0 added some multibyte string functions:

WordPress implementation for PHP functions either missing from older PHP versions or not included by default.

Unfortunately, they did not include mb_strstr, which searches text. I used Quick Mail on a system that said:

Uncaught Error: Call to undefined function mb_strstr()

The error was not displayed. I saw a blank page.

WordPress will not add an internal version of mb_strstr, because the function is not used by WordPress.

What’s New in Quick Mail 3.2.4?

Multibyte functions are not always available. The must be installed as a module, or compiled into the PHP executable file.

I test all uses of multibyte string functions, to know if the function is available.

The primary error is fixed. It is unlikely that someone would be using WordPress with a multibyte character set, without installing the multibyte string extension.

But it could happen. Let me know.

Get Quick Mail from WordPress or Github

Download Quick Mail 3.2.4 from the WordPress Plugin Repository. Fork Quick Mail on GitHub to add new features.

Quick Mail 3.2.4 was tested with WordPress 4.9 nightly releases, on standard and multisite.

I hope Quick Mail makes your life easier. Please leave a review to help others find it.

Thanks to everyone who has been translating Quick Mail. Please join the translation project so more people can use Quick Mail in their language.

My previous articles on Quick Mail contain additional information. Download Quick Mail to try it now.