Why is smtp not sending emails via SendGrid?
We use SendGrid with SMTP Authentication Support and have not encountered any problems.

SendGrid may not allow unencrypted connections on port 587, depending on your package. That is the port for TLS/STARTTLS, so if you want to use port 587, you should select use TLS under Use encrypted protocol. This is how all of our sites that use SendGrid are set up.

One trick that can trip you up is the configuration of Mail System. If you use Mime Mail or another system that requires Mail System to be installed, you must configure Mail System to use SMTP explicitly, or it will fall back to Drupal's default mailer (PHP mail())

For a quick out of the box, you need to configure Mail System  (/admin/config/system/mailsystem on Drupal 7) to use SmtpMailSystem for your module class (for example as the Mime Mail module class, or as the Site-wide default MailSystemInterface class).

For an alternative integration option, there is a SendGrid Integration module which uses the API rather than plain SMTP.