diff options
Diffstat (limited to 'src/net/transport.cpp')
-rw-r--r-- | src/net/transport.cpp | 17 |
1 files changed, 16 insertions, 1 deletions
diff --git a/src/net/transport.cpp b/src/net/transport.cpp index 1e2936ce..923441b7 100644 --- a/src/net/transport.cpp +++ b/src/net/transport.cpp @@ -139,6 +139,21 @@ void transport::send(ref <vmime::message> msg, utility::progressListener* progre throw exceptions::no_expeditor(); } + // Extract sender + mailbox sender; + + try + { + const mailbox& mbox = *msg->getHeader()->findField(fields::SENDER)-> + getValue().dynamicCast <const mailbox>(); + + sender = mbox; + } + catch (exceptions::no_such_field&) + { + sender = expeditor; + } + // Extract recipients mailboxList recipients; @@ -211,7 +226,7 @@ void transport::send(ref <vmime::message> msg, utility::progressListener* progre utility::inputStreamStringAdapter isAdapter(str); - send(expeditor, recipients, isAdapter, str.length(), progress); + send(expeditor, recipients, isAdapter, str.length(), progress, sender); } |