If you are providing email hosting you should really provide an authenticated and encrypted SMTP relay for users to use. If you don't provide one they would have to use an SMTP server provided by their ISP, which complicates their configuration and makes debugging email problems more difficult.

Moving email hosting is not completely transparent and has to be managed carefully. You can sync most of the existing mail without interrupting access, but eventually you need to disable access to the old server, do a final sync, enable access to the new server, and flip the DNS entry (so that users go to the new server, assuming they're using something like mail.domain.com instead of mail.current-provider.com).

Switching receiving mail can be done seamlessly, by configuring the new mail server to forward mail to the old mail server, then flipping the MX records so that mail gets delivered to the new server, and then when you switch the mail storage above reconfigure the new server to deliver locally instead of forwarding.

When is a mail relay needed?
I a web application that I am developing (being developed in PHP) when a user posts any request for service the user has to fill in a very length form.

Once user fills in the form and submits it another page (confirmation page) is loaded in which all values filled in by user are show. I must point out that at this stage the data is not saved to MySQL yet. Now on this page the user can either save the service request or go back. 

My problem starts here. When the user goes back. All data filled in is lost. BTW User tend to use Browsers Back button instead of the back button provided on the confirmation page.

How can is persist data filled in by user so that user can edit/make changes to data and again submit changed data.
