There are only two options for email:
1. SMTP -- Usually you configure the system to send email directly to the customers email server. If that is not possible you can use a relay to send to their email addresses -- many people use a GMail account for that purpose.
2. IMAP -- End users have their email client configured to connect to Unity directly to pull voicemails. This has the advantage of being synced with your mailbox (if you delete a message, it deletes from voicemail too, etc).
I don't believe the local directory supports that many entires if you were looking at one big list of 300. If you are referring to 300 speed dials spread over a number of phones... the only way to bulk import would be to make a giant list and paste directly into the CLI. I wouldn't recommend it unless you know what you are doing.