Something like this should work:
ForEach ($u in (Import-CSV C:\MyStuff\PrimarySMTPAddress.csv)){
$p = Join-Path C:\Temp -ChildPath ("{0}.cer" -f $u.PrimarySMTPAddress)
$cert=New-Object System.Security.Cryptography.X509Certificates.X509Certificate2($p)
$certArray = New-Object System.Collections.ArrayList
$certArray.Insert(0,$cert.GetRawCertData())
Set-Mailbox -Identity $u.PrimarySMTPAddress -UserSMIMECertificate $certArray
}
Adjust the path and file names accordingly.
The code's untested as I have no access to an Exchange server or any certificates.