You can directly feed the array into df like below and avoid using for-loop like
df -H "${array[@]}"
However, if this is a venture to study the for-loop in bash then  you can do the same like below
for i in "${array[@]}"
do
 df -H "$i" 
 # Well, "${array[@]}" expands to everything in array
 # and i takes each value in each turn.
done
And if you wish to access the array using index, then
for ((i = 0; i < ${#array[@]}; i++)) # This is a c-style for loop
do 
  df -H "${array[i]}" # Note the index i is not prefixed with $
done
Edit
To check if the usage is more than, say, 10GB
# We will usage file which we would use to fill the body of mail
# This file will contain the file system usage
# But first make sure the file is empty before every run
cat /dev/null > /tmp/diskusagereport
for i in "${array[@]}"
do
 usage=$(df -H "$i" | awk 'END{sub(/G$/,"",$3);print $3}')
 if [ "${usage:-0}" -gt 10 ]
 then
  echo "Filesystem : ${i} usage : ${usage}GB is greater than 10GB" >> /tmp/diskusagereport
 fi
done
#finally use the `mailx` client like below
mailx -v -r "[email protected]" -s "Disk usage report" \
      -S smtp="smtp.yourserver.org:port" -S smtp-auth=login \
      -S smtp-auth-user="your_auth_user_here" \
      -S smtp-auth-password='your_auth_password' \
                         [email protected] </tmp/diskusagereport