I have a crontab running every hour. The user running it has environment variabless in the .bash_profile that work when the user runs the job from the terminal,
.bash_profile
I got one more solution for this problem:
0 5 * * * . $HOME/.profile; /path/to/command/to/run
In this case it will pick all the environment variable defined in your $HOME/.profile file.
$HOME/.profile
Of course $HOME is also not set, you have to replace it with the full path of your $HOME.
$HOME