public void Send(Envelope email) { if (email == null) { throw new ArgumentNullException(nameof(email)); } Ensure.NotNullOrWhiteSpace(email.From.Name, nameof(email.From.Name)); Ensure.NotNullOrWhiteSpace(email.From.Address, nameof(email.From.Address)); Ensure.NotNullOrWhiteSpace(email.To[0].Name, nameof(email.To)); Ensure.NotNullOrWhiteSpace(email.To[0].Address, nameof(email.To)); var e = new NewOutgoingEmail(GuidManager.NewGuid(), email, DateTime.Now); this.connection.AppendToStreamAsync(this.queueStreamName, ExpectedVersion.Any, this.serializer.Serialize(e.EmailId, e.EmailId, e)).Wait(); }