title: Discrepancy between deliver vs deliver! methods (Rails 4)
body: <p>I've noticed via trail and error that</p>
  
  <pre><code>UserMailer.newsletter(@user, @posts).deliver unless @posts.blank?
  </code></pre>
  
  <p>will send the email regardless of the value of @post, while</p>
  
  <pre><code>UserMailer.newsletter(@user, @posts).deliver! unless @posts.blank?
  </code></pre>
  
  <p>(using deliver! vs deliver) will correctly not send the email if @posts is blank?</p>
  
  <p>Why is this? I know deliver! throws an exception if it cannot be sent, but shouldn't deliver also listen to the condition?</p>