void sendmailTransport::send (const mailbox& expeditor, const mailboxList& recipients, utility::inputStream& is, const utility::stream::size_type size, utility::progressListener* progress) { // If no recipient/expeditor was found, throw an exception if (recipients.isEmpty()) throw exceptions::no_recipient(); else if (expeditor.isEmpty()) throw exceptions::no_expeditor(); // Construct the argument list std::vector <string> args; args.push_back("-i"); args.push_back("-f"); args.push_back(expeditor.getEmail()); args.push_back("--"); for (int i = 0 ; i < recipients.getMailboxCount() ; ++i) args.push_back(recipients.getMailboxAt(i)->getEmail()); // Call sendmail try { internalSend(args, is, size, progress); } catch (vmime::exception& e) { throw exceptions::command_error("SEND", "", "sendmail failed", e); } }