Indeed. We’ve run into similar scenarios. Here’s my recommendations, and things to look out for:
1. The normal path to “I forgot my password and would like to log in” is to use their email to reset. For your site, you’ll want to give some clear instructions on how to request a lost password prior to them logging into your site for the first time.
2. you’ll want to make your default email address unique… not all the same. Example: [email protected] - Use a unique number for each imported member, and keep that in your spreadsheet for your records. You could automate this excel pretty easily by having an ID column, and then an email column that uses the ID column with a quick little calculation: (if your A1 field contains your ID, then you could make B1 column contain =(CONCAT(“default+”, A1, “@mysite.com”)) - then drag that equation down all 15,000 members to make their unique email addresses.
3. In expression engine (and a column in your spreadsheet), create a custom variable called “email is updated” with the options of “Yes” and “No”. When someone logs in, send them through a little routing page that looks at that custom variable and if it’s not “Yes”, then send them to an email update page that also updates that flagged variable. (alternatively - and cleaner, you could create an extension that hooks on the login, and routes them accordingly). If you make the “Yes” the first option, it will be the default - so future enrollments won’t be subjected to having to update their email after they enroll with their real email address… only those that you have imported will be forced into this.
4. of course, make sure you backup everything before you try the import… as it may take a couple of attempts to get everything to go smoothly.