Обычно я использую временный URL на основе записи приглашения на серверной части. По сути, вы создаете запись приглашения и генерируете хэш на основе некоторой информации, например, адреса электронной почты пользователя, отметки времени и случайного значения. Сохраните хеш как часть записи приглашения, а затем отправьте им URL с хешем в качестве параметра.
Когда они нажимают на ссылку, просматривают приглашение и подтверждают, что оно существует и не использовалось, а затем позволяют им установить свой пароль и аннулировать приглашение.
Это избавляет от необходимости посылать пароль любого типа, и вы можете установить срок действия в своих записях приглашений, если хотите.