Two of the fundamental issues in message passing between mobile agents are tracking the migration of the target agent and delivering messages to it. In order to provide reliable message delivery, protocols are needed to overcome message loss caused by asynchronous operations of agent migration and message forwarding. In this paper, two message forwarding approaches, namely push and pull, are explored to design adaptive and reliable message delivery protocols. The pros and cons of these two approaches are evaluated, both qualitatively and quantitatively. The comparative performance evaluation is in terms of network traffic and delay in message processing. We also propose improvements to the pull approach to reduce network traffic and the message delay. We conclude that with different communication and migration patterns and requirements of real-time message processing, specific applications can select different message delivery approaches to achieve the desired level of performance and flexibility.