• If you are still using CentOS 7.9, it's time to convert to Alma 8 with the free centos2alma tool by Plesk or Plesk Migrator. Please let us know your experiences or concerns in this thread:
    CentOS2Alma discussion
  • Inviting everyone to the UX test of a new security feature in the WP Toolkit
    For WordPress site owners, threats posed by hackers are ever-present. Because of this, we are developing a new security feature for the WP Toolkit. If the topic of WordPress website security is relevant to you, we would be grateful if you could share your experience and help us test the usability of this feature. We invite you to join us for a 1-hour online session via Google Meet. Select a convenient meeting time with our friendly UX staff here.

Mail account removal problem

J

JoonasK

Guest
Hi,

I'm unable to remove mail accounts. After confirmation I get the following error message:
0: class.MailManager.php:242
MailManager::execWithException(string 'smart_exec', string 'mailmng', array, array, string 'lst')
1: class.MailManager.php:274
MailManager->callMailManager(string 'remove-mailname', array)
2: class.MailManager.php:354
MailManager->removeMailname(string 'molentum.fi', string 'testi')
3: cmd_mail.php3:1357
mn_del(string '249')
4: class.MailNamesList.php:597
MailNamesList->remove(array)
5: mail_names_remove.php:55

I've try to fix this problem with admin/sbin/mchk but no luck.

Any suggestions what would help.
 
Hello

Please try to do it from command line with:
/usr/local/psa/bin/mail -r [email protected]
Probably the error will be more helpful. Post here the error you are getting.
Also, before that you can try to reconfigure domain with:
/usr/local/psa/admin/sbin/websrvmng --reconfigure-vhost --vhost-name=molentum.fi
and try to remove mailbox again.
 
Hi Yulia,

mail -r [email protected] gives me following errors:
ERROR: SpamFilterFatalException
object ID is invalid

0: SpamFilter.php:462
SpamFilter->setError_(string 'object ID is invalid')
1: class.cObject.php:399
cObject->delete()
2: SpamFilter.php:401
SpamFilter->delete()
3: MailName.php:720
Mailname->_onMailNameDelete()
4: MailName.php:1075
Mailname->delete()
5: cuMail.php:920
cuMail->_remove(string '[email protected]')
6: cuMail.php:896
cuMail->cmdRemove(string '[email protected]')
7: cuMail.php:509
cuMail->execute()
8: mail.php:27
PHP Warning: Releasing semaphore 29 in request cleanup in Unknown on line 0

I also checked accounts spam filter setting and they were off. When I tried to enable those I got this messages:
0: common_func.php3:108
psaerror(string 'Error: Can't create Account object: Account: unable to select: no such row in the table')
1: client.domain.mail.mailname.php:86
plesk__client__domain__mail__mailname->accessItemOverview(string 'GET', NULL null)
2: client.domain.mail.mailname.php:160
__plesk__client__domain__mail__mailname->accessItem(string 'GET', NULL null)
3: UIPointer.php:596
UIPointer->access(string 'GET')
4: plesk.php:38

So am I figuring this right that there's really something wrong in the psa db?
 
Hi,

Judging by error message "Can't create Account object: Account: unable to select: no such row in the table" it looks like corresponding record for this mail user in accounts table in Parallels Plesk database is missing.

Below is a how-to example you can use to check it. I am checking on test account [email protected]:

1. Find id of domain in database:
mysql> select id from domains where name='test.test';
+----+
| id |
+----+
| 3 |
+----+

So in my case id of domain is 3


2. Next we find account id of mail user:
mysql> select id,dom_id,mail_name,account_id from mail where dom_id=3;
+----+--------+-----------+------------+
| id | dom_id | mail_name | account_id |
+----+--------+-----------+------------+
| 7 | 3 | test | 49 |
+----+--------+-----------+------------+

So account id of mail user [email protected] is 49


3. Let's check if there is corresponding record in 'accounts' table:
mysql> select * from accounts where id=49;
Empty set (0.00 sec)

See, no records are available and that is not correct. We should have records with id=49 here so let's add it:

mysql> insert into accounts values (49,'plain','testpwd');
Query OK, 1 row affected (0.00 sec)

49 is ID of account
'testpwd' is password - you should place account password instead of it (but as you are going to delete it anyway you can use anything here).

So now we have missing record:
mysql> select * from accounts where id=49;
+----+-------+----------+
| id | type | password |
+----+-------+----------+
| 49 | plain | testpwd|
+----+-------+----------+

And we should be able to delete this mail account.

Try doing same for your mail user.
Hope this helps.
 
I found that deleting the accounts directly from the database was necessary, since there was no account tree for the address under /var/qmail/mailnames

Your SQL was a great starting point, igors, but this is simpler to find the broken accounts:

Code:
select * from mail where account_id not in (select id from accounts);
 
Back
Top