When a message has been sent, I have assumed that a user gets shown a message summary screen. If so you could re-write your test as:
Given I have configured an e-mail service
When I send a message
Then I should see a sent message summary
And that it was sent in a timely manner
First thing I'd do is assert that the message summary is as expected e.g. maybe you show the first twenty characters from the message. If you don't do this then ignore this suggestion.
Next your application may have a non-functional requirement for how long it should take to send a message (e.g. it should take a maximum of ten seconds to send a message). What I'd do first is record the time when the message was sent in the "When I send a message" step definition. Then in the "And that it was sent in a timely manner" step definition I'd assert that the message time shown has a value within ten seconds of the time it was sent.
The key point is that the time it takes to send an e-mail is (almost always) non-deterministic hence the reason for testing that it was sent within a certain time range.
Note that I've assumed that your send message process is a synchronous operation i.e. program execution only progresses to the summary page once the message has been sent, though this may not be the case (and it's usually an asynchronous process).