Citizen_elah was suggesting you could collect the TCP payload and then modify it to insert a custom header (like Comments or X-someheader-name) which contains the original client IP address. You'd need to be wary of collecting more than 4Mb of data though. And this would still require the mail server to actually do something with the custom header. It would probably be a lot easier to change the default gateway on the mail server to the BIG-IP...
SOL6578: TMM will crash if an iRule collects more than 4MB of data
https://support.f5.com/kb/en-us/solutions/public/6000/500/sol6578.html
If you're on 9.2.5+, you could potentially do this using a stream profile and STREAM::expression iRule (
Click here).
SOL6741: Large payloads with use of the Stream profile cause the BIG-IP LTM system to crash (fixed in 9.2.5)
https://support.f5.com/kb/en-us/solutions/public/6000/700/sol6741.html
Aaron