If you have a private keys, is it not possible to sign and send a function call on behalf of a different address?
It's not possible. When you are sign a function and the blockchain will be identifying it as the address that contains ethereum. What you need to send it to the another address that needs ethereum to send ERC token or something else.
It's caused by it needs an approval for the owner of address to make sure if that's not a crime or something else.
you have no choice other than send it to another address dude and these days the fees are so cheap.