Support for Drupal 7 is ending on 5 January 2025—it’s time to migrate to Drupal 10! Learn about the many benefits of Drupal 10 and find migration tools in our resource center.
Warning: class_implements() [function.class-implements]: Class MailsystemDelegateMailSystem does not exist and could not be loaded in drupal_mail_system() (line 276 of /XXX/includes/mail.inc).
Class MailsystemDelegateMailSystem does not implement interface MailSystemInterface
There is a typo in the .info file - the case of the actual filename is different to what is there, and on our systems that stops the class being loaded when needed. The attached patch fixes this.
Comment | File | Size | Author |
---|---|---|---|
#2 | 1844630.2-mailsystem-missing-class.patch | 2.86 KB | mrfelton |
mailsystem-missing-class.patch | 316 bytes | james.williams | |
Comments
Comment #1
znerol CreditAttribution: znerol commentedAfter looking at the code I suggest to rename the file
MailSystemDelegateMailSystem.inc
intoMailsystemDelegateMailSystem.inc
instead of updating the info file because the contained class actually is namedMailsystemDelegateMailSystem
.Comment #2
mrfelton CreditAttribution: mrfelton commentedAttached patch renames the file instead.
Comment #3
Les Lim"MailsystemDelegateMailSystem" is more precise camel-casing, anyway. Works in my testing.
Comment #4
Kristen PolPatch #2 works for me too. Thanks!
Comment #5
jpstrikesback CreditAttribution: jpstrikesback commented#2 Works great.
Comment #7
Les LimCommitted #2 to 3.x. Thanks!
Comment #9
djg_tram CreditAttribution: djg_tram commentedSorry to be the harbinger of bad news but it's not fixed yet. :-) I downloaded the package today and was dumbfounded by the error message. Being closed, the issue queue didn't bring it up, only Google helped. The file still has an uppercase S in the name and manually renaming it helped.
Comment #10
Les LimSorry, this is fixed in the development snapshot of the 3.x branch, which wasn't published until now. It is not fixed in the alpha1 release that you probably downloaded.
Comment #11
Les LimComment #13
jfellers CreditAttribution: jfellers commentedSorry, I am getting the same error after updating Webform 7.x-4.1 to Webform-7.x-4.2. (Prior to the Webform update I updated Drupal from 7.32 to 7.34.)
"Warning: class_implements(): Class MailsystemDelegateMailSystem does not exist and could not be loaded in drupal_mail_system() (line 278 of /var/www/xxx/includes/mail.inc).
Exception: Class MailsystemDelegateMailSystem does not implement interface MailSystemInterface in drupal_mail_system() (line 283 of /var/www/xxx/includes/mail.inc)."
Comment #14
Les Limjfellers: you'll need to be using the 7.x-3.x-dev version of Mailsystem for now.
Comment #15
jfellers CreditAttribution: jfellers commentedThanks for very prompt response. Reverted back to webform-7.x-3.21.
Sending test form now results in:
"PDOException: SQLSTATE[HY000]: General error: 1364 Field 'serial' doesn't have a default value: INSERT INTO {webform_submissions} (nid, uid, is_draft, submitted, remote_addr) VALUES (:db_insert_placeholder_0, :db_insert_placeholder_1, :db_insert_placeholder_2, :db_insert_placeholder_3, :db_insert_placeholder_4); Array ( [:db_insert_placeholder_0] => 12735 [:db_insert_placeholder_1] => 0 [:db_insert_placeholder_2] => 0 [:db_insert_placeholder_3] => 1416939192 [:db_insert_placeholder_4] => 10.147.89.95 ) in drupal_write_record() (line 7239 of /var/www/upgrade/includes/common.inc)."
Comment #16
Les LimThat looks like a problem with reverting webform.
Comment #17
AdamGerthel CreditAttribution: AdamGerthel at Odd Hill commented#2 works for me
Comment #18
dimaboychev CreditAttribution: dimaboychev commented#2 solves the problem
Comment #19
dandaman CreditAttribution: dandaman commentedIssues people may be running into may be some sort of issue with the naming of files and how their system handles file names.
The originial file was
MailSystemDelegateMailSystem
. The new one isMailsystemDelegateMailSystem
, which has one less capital S. Some filesystems, like Mac OS, disregard case changes and therefore Git or the filesystem might not detect the change. I ran the patch on a copy of the code from alpha1 that was upgraded to dev and then git recognized that I had changed the case of the file.