aboutsummaryrefslogtreecommitdiffstats
path: root/src/net/transport.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/net/transport.cpp')
-rw-r--r--src/net/transport.cpp17
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);
}