ERROR: Message not sent. Server replied: 354

Solution 1:

TL;DR:

Your webmail program is badly written and thinks that the response code 354 is an error, even though it isn't.

Long answer:

This is what the SMTP conversation looks like (S = server, C = client)

  S: 220 foo.com Simple Mail Transfer Service Ready
  C: EHLO bar.com
  S: 250-foo.com greets bar.com
  S: 250-8BITMIME
  S: 250-SIZE
  S: 250-DSN
  S: 250 HELP
  C: MAIL FROM:<[email protected]>
  S: 250 OK
  C: RCPT TO:<[email protected]>
  S: 250 OK
  C: DATA
  S: 354 Start mail input; end with <CRLF>.<CRLF>
  C: Blah blah blah...
  C: ...etc. etc. etc.
  C: .
  S: 250 OK
  C: QUIT
  S: 221 foo.com Service closing transmission channel

As you see, the code 354 means "OK, we're done with the information about sender and recipient, now give me the actual mail". However, your webmail system has been coded to think that only response codes starting with a 2 means "succeeded", so it takes any other code to mean that there's a problem. Whoever wrote the webmail program needs to go back and read RFC 5321 again and then fix the bug.