This morning I released version 4.6.0 of Email Users. This release addresses the problems with addresses appearing in the CC header instead of the BCC header which cropped up in v4.5.4 and v4.5.5. This version has gone through quite a bit of testing to ensure the problem with addresses was fixed. In addition to this critical fix, there are also a couple of minor new features now available. If you were running Email Users v4.6.0-beta-4, this version is nearly identical. The version is different and the default string for the new footer was trimmed eliminating the version number.
Significantly improved debug functionality to chase down mail header issues.
Check added to determine if wp_mail() has been overloaded by a theme or plugin.
Rewrite of mailusers_send_mail() fucntion to construct headers as arrays instead of as a single string. The string would sometimes not break correctly and recognize the Bcc: field.
This morning I released beta-3 of WordPress Google Form v0.58. This update addresses one problem, properly handling newline characters in TEXTAREA entry boxes. This issue was reported on the WordPress Support Forum.
If there are no more reported issues, I will likely release v0.58 in the next day or so.
If you’ve been following the Email Users Support Forum, you are aware that for the past couple of days I have been chasing a bug which affects some users and places all of their intended recipient email addresses in the CC header instead of the BCC header.
This has been a challenging bug to find as it doesn’t happen on any of the systems I have access to. Fortunately I had a few users affected by this problem willing to help me and I appreciate their assistance. I am not sure how I would resolved this problem without their assistance. Again, thanks.
So what was the problem? The WordPress wp_mail() API allows you to pass extra header information as part of the mail content. Email Users makes use of this by constructing a BCC header which contains all of the email addresses for the intended recipients. The wp_mail() function supports headers as a single string or an array of headers, each header as an array element.
Up until this evening Email Users had constructed all email headers as a string. With a large number of email addresses this string could end up being very long. However, I don’t believe the length of the string had anything to do with the problem.
When wp_mail() receives headers as a string, it tries to intelligently decompose them. In some cases it appears that the string wasn’t splitting correctly which means the BCC field wasn’t ever seen. The “Bcc:” text became part of an email address which was subsequently discarded because it resulted in a bad address.
Email Users v4.6.0 has a rewrite of the mailusers_send_mail() function plus some new debug functionality which helps resolve these sorts of issues. Additionally, the new debug is under user control so can be turned on and off as needed.
For the past few days I have been chasing a reported issue where Email Users is putting recipient addresses into the CC header instead of the BCC header. This has been a challenge to chase down. To assist in this I have add a bunch of new debug and checking to Email Users.
Email Users will now check and report if wp_mail() has been overloaded by a plugin or theme. Since wp_mail() is a pluggable function, this is the one area which is really out of the control of Email Users. Simply knowing if wp_mail() has been overloaded is very helpful.
Additionally, I have finally found a way to initiate a complete email which is aborted just prior to the email actually being sent. The content of several internal structures is displayed on the Dashboard so the email headers can easily be examined.
This build is in DEBUG mode which means it will never actually send an email unless wp_mail() has been overloaded in which case all bets are off. Please visit the Settings page first to determine if wp_mail() has been overloaded. If it has, do not send any email but let me know which plugin or theme has overloaded wp_mail().
I have just released beta-2 of WordPress Google Form v0,58. This update addresses a couple of significant issues, notably the inability to disable some of the default options.
The problem with the default settings based on checkboxes is described pretty well in this article by Devin Price. I was dealing with the essentially the same problem Devin describes although my solution is slightly different, his solution was helpful in fixing this problem.
While fixing this problem I also added a new Reset button which appears on the Advanced tab. This Reset button will reset the plugin to use the default settings.
This beta release also includes a fix to address the problem when an ampersand appears in a text box on a multi-page form. This problem was reported on WordPress Support Forum.
I have just uploaded beta-5 of wp-SwimTeam v1.40. This is a minor update, the only fix is to the generation of the USS Number when used as swimmer labels. Previously the USS Number was being computed in YYMMDD format where as the USS Swimming SDIF specification calls it out in MMDDYY format.
This morning I posted beta-4 of wp-SwimTeam v1.40. This beta update addresses a number of issues mentioned recently on the WordPress Support Forum.
Support for Age Groups where min and max age are identical.
Mapping zero (0) as upper and lower max age in event files to min and max age in wp-SwimTeam.
There are a few other fixes as well plus some debug code cleanup. I still have a couple of things to clean up before releasing v1.40. Also in this build as are the basic building blocks for Roles and Capabilities. If you use a Roles and Capabilities plugin, you may see some new swim team related data which has been defined but is not yet being used.
This morning I pushed out beta-4 for Email Users v.4.5.3. This latest update addresses the duplicate header information discovered by Andy Fragen. I had already fixed the problem with the TO header Andy noted but was unaware of the duplicate MIME-Version header. It turns out, there was also a duplicate X-Mailer header as well.
By default wp_mail() sits on top of PHPMailer. WordPress does not check for either the MIME-Version header nor the X-Mailer header. Unless specifically set, PHPMailer will add its default values for these two headers which is what was happening. It appears that some systems are sensitive to duplicate headers and reject the messages and others do not. This definitely explains why it is difficult to reproduce reports that come in of users not receiving email.
Because wp_mail() is pluggable, other mail implementations may be expecting these headers to continue to exist. What I have done is added two new options to add the headers as Email Users has been doing all along. By default these two options are off because PHPMailer duplicates them and I expect most people use the default WordPress implementation.
I also improved the information panel I added recently to report the existance of any filters which may interact with Email Users. For the most part these filters don’t do any harm however they can change override the FROM information in the email or the format which may be unexpected. The new information in the panel is nothing more than a note that something else may be affecting your email outside of Email Users (e.g. why is my From name different than what I set?).
Please report any issues with this latest beta update.
This afternoon I posted the third beta release of Email Users v4.5.3. There is a pretty significant change in this build so I may bump to v4.6 when I release it.
Yesterday I posted an article about an odd Email Users problem I was looking at. This build fixes (correctly) the problem encountered by that user by properly using get_users() instead of a complex SQL query to retrieve the information used to construct the User Settings page.
In addition to being properly constructed, the User Settings page has a number of fixes including proper sorting and the addition of Search (which I could never get working using the old query).
A second beta release of Email Users v4.5.3 is now available. This beta addresses a problem reported on the WordPress Support Forum where the Dashboard widget was shown to all users as opposed to only users who have some level of Email Users capability.