SharezoneApp / sharezone-app

Sharezone is a collaborative school organization app for iOS, Android, macOS and web with +500,000 downloads. Built with Flutter & Firebase.
https://sharezone.net
European Union Public License 1.2
254 stars 46 forks source link

Verify email addresses of users #1645

Open nilsreichardt opened 1 month ago

nilsreichardt commented 1 month ago

Description

Since then, we have never verified the email addresses of our users because we have no reason to send emails. But this has changed, we are now sending this type of emails:

In the future, we may have more scenarios where we send emails (email about a new homework comment, etc.).

Currently, we have a high hard bounce rate. A hard bounce occurs when an email is returned to the sender because the recipient's address is invalid or does not exist. This is different from a soft bounce, which is a temporary problem (such as a full inbox).

Impact on Reputation Score

IP address and domain reputation: Email service providers (ESPs) and Internet service providers (ISPs) monitor the sending behavior of IP addresses and domains. A high hard bounce rate can signal to these providers that you are not maintaining a clean email list, which can damage your reputation.

Deliverability: A poor reputation can cause your emails to be flagged as spam or blocked outright, reducing the chances of your emails reaching their intended recipients.

Blacklisting: Consistently high bounce rates can lead to blacklisting by major ESPs and ISPs, drastically impacting your ability to send email.

Feedback loops: Many ESPs offer feedback loops for reporting spam complaints. If your reputation score drops, you may receive more complaints, further lowering your reputation.

Improvements

Let the user review the email. Only when the user verifies the email, do we send emails to that user. Verifying the email should be a blocking action. Even if the user doesn't verify the account, he/she can still use Sharezone as before. We should only send a push notification after x days that the email is not verified.

If the user doesn't have an email (e.g. uses Apple Sign In), the user is not affected by this change.