You really should use a contract. I typically use a master services agreement and it states that scopes of work and fees can be approved by the client through emails.

That said I also do lots of work just based on email.

Typically people are honest and you will get paid. But there are things you can do prevent problems. If you get a bad feeling about a client trust your instincts and pass on the work or work on terminating the working relationship as soon as you can.

Get a clear scope of work approved in an email and a clear fee.

Break each project in to tasks/phases. For a new client keep these small maybe even a single day or work/8 hours. This will all be outlined in the email the client approves in email (don't get an ok over the phone, have them email to proceed with the work). Note that you or the client reserves the right to end the project at the completion of any phase.

Also note the phase works as follows phase development, client review, client gives feedback that will be completed during phase 2, client pays invoice phase 2 begins.

So once the project kicks off you do the initial phase, submit it to the client for review, and submit the invoice, they provide feedback, pay the invoice and you start work on the next phase.

This way the client sees the work, provides feedback and pays the invoice. The key is establishing that they will be happy with the work and are paying invoices.

If they add/change features you can add a new phase or update a phase you haven't started on yet.

The real risk is doing too much work without getting paid and then having a client hold that over your head and keep leading you further and further out with I'll pay you after the next phase. So don't continue work without payment.

If they want you to work a week or two between payments ask for 50% at the front of the time period.

As far as payments I typically use paypal or stripe so they can pay with a card to speed things along, a check is fine too but it might take a while to get there, then once you deposit it, it could take a few days to clear their bank. With both you run the risk of bounced checks and charge backs. I'd rather risk a chargeback and have the documentation in email to back it up. I had a client's wife initiate a charge back when they didn't recognize the charge. The client realized this and offered to send a check but I had already contested the charge back by submitting the clients emails indicating they had willing paid my invoice and they denied their chargeback request.

Then you proceed phase by phase till the project is completed.

Make sure you back up all the clients files/databases/etc before beginning work, keep incremental backups, before work started, your work and the final completed work for each phase. I usually create folders with the current date, and zip those up occasionally so there are incremental copies of everything and use online backup and timemachine for this as well. Occasionally you'll overwrite a file you need to replace or the client will be like well this worked before but doesn't now. So you can show them what it was doing before since you have a snapshot before you started. Also use GIT in your workflow if you're comfortable with it.

Good luck.