emails = request.POST.getlist("email")
Django doesn't mix lists and single string values, because I'd been burned by that problem in PHP.But then using the email address from the request rather than the already verified address in the DB seems like a weird design decision to me anyway.
I mostly hate the way strong params gets used - it's a bad compromise between letting Ruby people do Ruby things and trying to plug up a category of vulnerability that's been biting rails apps for a decade. Now I do all my api definitions in openapi and it's way easier. I haven't tried it with a rails app but I think it'd work well there.
If you changed it now you would break a whole lot of stuff.
I use it extensively in my own Datasette application, eg here: https://datasette.io/content/plugins?_facet=owner&_facet=is_...
If I had to guess what they did was:
user = User.find_by(email: params[:emails])
params[:emails].each { |email| send_recovery_email(user, email) }
Instead of: user = User.find_by(email: params[:emails])
send_recovery_email(user, user.email) if userEdit: Someone has digged it out: https://news.ycombinator.com/item?id=39162126