We have internal hmailserver on domain example.org, all users have one account in thunderbird on domain example.org and some users have external accounts on domain example.ru which hosted on ISP.
When user test@example.org send mail to test@gmail.com, hmailserver check mail on OnDeliveryStart(), see that source (test@example.org) in internal and dest (test@gmail.com) is external and change
oMessage.FromAddress, oMessage.From, oMessage.HeaderValue to user test@example.ru and sucessfully send mail to test@gmail.com using login noreply@example.ru for autorization on isp (in smtp-delivery of e-mail - smtp relayer).
Everithing was ok but recently our ISP change their policy for spam prevention: now user who send email and user who autorize on isp smtp must be the same, as in thunderbird i.e. when hmailserver send mail from test@example.ru it must authorize as test@example.ru, when from test2@example.ru as authorize as test2@example.ru etc
So as temporary decision for now hmailserver have to send all external mail from noreply@example.ru, which is very inconvinient

Can we solve problem using script or using another smtp in chain: hmailserver -> smtp -> isp?
Thanks and sorry for my english.