- Yes, but users will have to trust you with their e-mail password, you'll have to store these unhashed (you can encrypt them though, but then you'll have to figure out how to hide the key); and if you leak them, you will wish you were dead.
- Any general-purpose language that is suitable for web programming and can open socket connections (or, alternatively, provides IMAP and POP3 libraries) will do. Use whatever you are comfortable with.
- Not directly. If you are familiar with a framework that you know will help you get a decent-looking website up and running, I don't see why you wouldn't use it. Other than that, I think you are looking for libraries more than for frameworks.
- You don't need a mail server, since you're not sending any e-mail (SMTP) nor providing any mailbox (POP3/IMAP server). All you need to do is connect to the user's IMAP or POP3 server; you can implement the protocol yourself, or you can go look for suitable libraries.
Alternatively, you can ask users to set up a forwarding service to your own server, and read e-mail from there. This way, users won't have to give you their password, and they can add some filters themselves before e-mail reaches your server. You do need to run your own IMAP or POP3 server for this though, but from there, the procedure is pretty much the same as outlined above, only you pull e-mail from your own server instead of the user's.
Oh, and you want to make sure that your alert e-mail doesn't trigger another alert, e.g. if the user has set up 'hotdog' to trigger an alert, and you naively send a message saying "There are new matches for the keyword 'hotdog'", then that message would be picked up as a new match, and trigger another message, and then this would repeat until your server commits suicide or the user's account gets blocked.