Is there a way to add new email accounts from my website? For example, someone who uses my site would like to have an email address @mydomain.com that just forwards to their regular service.
With Dreamhost that is currently impossible.
All administration has to be done through the panel which would prevent users from hosting their own email services or free hosting services etc.
It’s not exactly impossible, but it is very difficult. All new E-mails, sub-domains, and whatnot must go through the panel. There’s no way around that, what you can do is set up a a system to take the info from your site visitor and pipe it into the panel.
I’ve posted about this a few times before, and you should be able to search and find that info. Check the wiki too, for instance the dynamic DNS article has a script that logs into the panel to make IP changes - that should serve as a good example of what would need to happen.