It has nothing to do with intercepting email. When you encrypt your passwords in your database you can't send them to the user. That is why you would use a reset password rather than sending it.
Webassist has a binding for a random password you can use if that is the technique you want to use. Your technique seems valid.