My current understanding is that when I expect to receive monero from many people, I send each subaddress to each one of them to identify which one sent how much. But it seems to be troublesome for me to generate a lot of subaddresses. So I will just have an address and people send monero to that. Then they send me an email with 2 information TXID TXKEY so I can check it. Is that the correct way ?
You could do that, if you want something way more cumbersome than giving a different address to everyone. Another, more secure way is to get the sender to generate a proof of sending a transaction (see
check_tx_proof), but that is also more cumbersome than using a subaddress per sender.