| 1 | | My application uses the "Email me whenever anyone posts a comment" feature in the Discussion Settings sub panel. I have found two issues with the default WordPress implementation of this feature. |
| 2 | | |
| 3 | | First, WordPress puts an invalid e-mail address in the "From:" header of all messages. In wp-includes/pluggable.php, function wp_notify_postauthor, line 1072 reads: |
| 4 | | |
| 5 | | {{{ |
| 6 | | $wp_email = 'wordpress@' . preg_replace('#^www\.#', '', strtolower($_SERVER['SERVER_NAME'])); |
| 7 | | }}} |
| 8 | | |
| 9 | | This means that the "From" field on all comment notification e-mails will contain an invalid domain name, which causes some SMTP servers to reject the transmission. A fix is to use the comment author's e-mail address when it is available: |
| 10 | | |
| 11 | | {{{ |
| 12 | | if ( '' != $comment->comment_author_email ) |
| 13 | | $wp_email = $comment->comment_author_email; |
| 14 | | else |
| 15 | | $wp_email = 'wordpress@' . preg_replace('#^www\.#', '', strtolower($_SERVER['SERVER_NAME'])); |
| 16 | | }}} |
| 17 | | |
| 18 | | There are some old (2005) tickets on this issue (e.g., #2053, #1593, #1532), and Changeset 3214 comes close. However, the fix proposed here brings the "From:" address into line with the "Reply-To:" address and is a better fix when the comment_author_email is set. |
| 19 | | |
| 20 | | Second, in my application a notification must be issued even when an author comments on their own post; this is not allowed by the default WordPress implementation. Lines 1015 - 1025 in function wp_notify_postauthor reject the author's comments and moderations. |
| | 1 | In my application a notification must be issued even when an author comments on their own post; this is not allowed by the default WordPress implementation. Lines 1015 - 1025 in function wp_notify_postauthor reject the author's comments and moderations. |