Cold emailing can work, but I usually open applications when I have room in my lab.
For context, I usually get about 5-6 interested students for every one I can take. So I'm usually looking for students who have experience or skills already (usually from classes), who have a particularly good "mission fit" with my lab (i.e., want to go to grad school in this area of research), and ideally those that I've either had in a lab course already (so I know what they're like) or where I can get a recommendation for a colleague.
An undergrad researcher, even one in an unpaid position, is a significant cost to the lab in terms of mentoring/supervision time and reagents under even the best circumstances. And most of us have had a student not listen to instructions and cause thousands of dollars (or more) of damage, so we know that the worst circumstances can be pretty bad.
I'm skeptical of mass emails, because it's unlikely that there are that many labs at your school where you have a particularly good fit combining skills, experience/expertise, and interest that ties into your future goals. You may be better served by spending more time finding labs that are a good fit and you have connections to.