From what you write I assume:
- Your cronjob is running
- You can send mails if you do it from an event (using "now")
Have you tried making events with different mail-settings for ( 3, 2, 1 and o days)
As far as I know, the cronjob only uses the field "day(s) before event"
You can start the cronjob manually when making tests, if the "Cron job host" is set to "remote". Remember to set set it back when your testing is done. The "remote" allows the cronjob to be started manually from any browser. The setting "local" allows it only to be started at the same server where your calandar is.
I suggest you try with PHP mail as the setting for email.
As you apparently are able to send mails from an event, it should have nothing to do with sender-address. Most providers now demand that the sender address is an address belonging to your domain. If your domain is mydomain.com, then the mails sender-address should look something like myemail@mydomain.com.