diff --git a/config/vufind/export.ini b/config/vufind/export.ini
index 04a4702aac52a7f5d4901914b67b4ef32d79b420..151b04e4ac2a98a0fe35d456d21c3271ebd8ad74 100644
--- a/config/vufind/export.ini
+++ b/config/vufind/export.ini
@@ -25,16 +25,25 @@
 ;             {config...} setting above, except result will be URL-encoded.
 ; requiredMethods[] - a repeatable field indicating methods which must be available
 ;     on the record driver object in order to allow export in this format.
-; bulkExportType - [ "link" | "download" ] - link renders a download link in the UI,
-;     download offers to save the export-file directly; overrides the defaultType
-;     setting found in the [BulkExport] section of config.ini. This distinction
-;     currently only affects users with Javascript enabled; the 'download' option
-;     cannot be implemented in a user-friendly way when Javascript is disabled.
+; bulkExportType - [ "link" | "download" | "post" ] - link renders a download link in
+;     the UI, download offers to save the export-file directly, post sends the
+;     metadata using the POST method in a form field named by the postField
+;     parameter; overrides the defaultType setting found in the [BulkExport] section
+;     of config.ini. This distinction currently only affects users with Javascript
+;     enabled; the 'download' option cannot be implemented in a user-friendly way
+;     when Javascript is disabled.
+; postField
+;     Name of the POST field to use when sending records with the POST method.
+; targetWindow
+;     Name of the window where the export is opened in the browser. Default is
+;     "{format}Main" (e.g. "RefWorksMain"), but could be set to e.g. "_blank" to
+;     make the export always open a new window.
 
 [RefWorks]
 requiredMethods[] = getTitle
-redirectUrl = "{config|RefWorks|url|http://www.refworks.com}/express/expressimport.asp?vendor={encodedConfig|RefWorks|vendor|VuFind}&filter=RefWorks%20Tagged%20Format&url={encodedCallback}"
-headers[] = "Content-type: text/plain; charset=utf-8"
+redirectUrl = "{config|RefWorks|url|http://www.refworks.com}/express/expressimport.asp?vendor={encodedConfig|RefWorks|vendor|VuFind}&filter=RefWorks%20Tagged%20Format&encoding=65001"
+bulkExportType = post
+postField = ImportData
 
 [EndNoteWeb]
 requiredMethods[] = getTitle
diff --git a/languages/ar.ini b/languages/ar.ini
index 8184d439fa72858c35a845ee824a4bdc19f60f5e..6902a1289bedcf37af1d42b1bba629301d7ac3d9 100644
--- a/languages/ar.ini
+++ b/languages/ar.ini
@@ -346,6 +346,7 @@ export_no_formats = "هذه التسجيلة لا تدعم التصدير."
 export_save = "حفظ الملف"
 export_selected = "تصدير المحدد"
 export_selected_favorites = "تصدير المفضلة المحددة"
+export_send = "بدء التصدير إلى %%service%%"
 export_success = "اكتمل التصدير"
 export_unsupported_format = "تنسيق تصدير غير مدعوم"
 external_auth_heading = "الوصول إلى المادة المرخصة"
diff --git a/languages/bn.ini b/languages/bn.ini
index 679c6e2ff6ed162b8a6ed86d0482cc84fab23a2b..63382f41920adc28d04c3f3345889080017d00c1 100644
--- a/languages/bn.ini
+++ b/languages/bn.ini
@@ -348,6 +348,7 @@ export_no_formats = "এই রেকর্ডটি এক্সপোর্ট
 export_save = "ফাইল সংরক্ষণ করুন"
 export_selected = "নির্বাচিত ফাইলটি এক্সপোর্ট করুন"
 export_selected_favorites = "নির্বাচিত পছন্দ তালিকাগুলি এক্সপোর্ট করুন"
+export_send = "Start export to %%service%%"
 export_success = "এক্সপোর্ট সম্পূর্ন হয়েছে"
 export_unsupported_format = "অসমর্থিত এক্সপোর্ট বিন্যাস"
 external_auth_heading = "সাবস্ক্রাইব করা গ্রন্থাগার সম্পদের ব্যবহার করুন"
diff --git a/languages/ca.ini b/languages/ca.ini
index cdfefe13f687e17a3b1d68040d7cc3ff4fc6bd62..28f1c823c2029b2c3a67d86f4f778a3f288014e2 100644
--- a/languages/ca.ini
+++ b/languages/ca.ini
@@ -355,6 +355,7 @@ export_no_formats = "Aquest registre no permet exportacions."
 export_save = "Guardar fitxer"
 export_selected = "Exportar seleccionats"
 export_selected_favorites = "Exportar favorits seleccionats"
+export_send = "Començar a exportar a %%service%%"
 export_success = "Exportació completada"
 export_unsupported_format = "Format d’exportació no suportat"
 external_auth_heading = "Dibuixar quadre de cerca"
diff --git a/languages/cs.ini b/languages/cs.ini
index 35a11382387e48faff366c00d6df271ffc0dffd4..a9069a9a35c65389b115296ef49d2a7299d91013 100644
--- a/languages/cs.ini
+++ b/languages/cs.ini
@@ -342,6 +342,7 @@ export_no_formats = "Položku nelze exportovat."
 export_save = "Uložit soubor"
 export_selected = "Exportovat vybrané"
 export_selected_favorites = "Exportovat vybrané oblíbené položky"
+export_send = "Začít export do %%service%%"
 export_success = "Export byl úspěšný"
 export_unsupported_format = "Nepodporovaný exportní formát."
 external_auth_heading = "Přístup k licencovaným zdrojům"
diff --git a/languages/cy.ini b/languages/cy.ini
index 466800e53f3b7de903c66013b28d9fa5585b1c18..413a7cd55abff4e72cff4e567c7c3f3ddec60374 100644
--- a/languages/cy.ini
+++ b/languages/cy.ini
@@ -347,6 +347,7 @@ export_no_formats = "Nid yw'r cofnod hwn yn cefnogi allforio"
 export_save = "Cadw Ffeil"
 export_selected = "Allfudo'r detholiad"
 export_selected_favorites = "Allfudo Ffefrynnau Dethol"
+export_send = "Dechrau allforio i %%service%%"
 export_success = "Allfudo'n Llwyddiannus"
 export_unsupported_format = "Fformat Allfudo na Chefnogwyd"
 external_auth_heading = "Mynediad i ddeunydd trwyddedig"
diff --git a/languages/de.ini b/languages/de.ini
index 85677f018a890c5ba6ca05f437fad1021e53c45d..7c8a1516b7435d66a681151ca261de191b2b5a61 100644
--- a/languages/de.ini
+++ b/languages/de.ini
@@ -346,6 +346,7 @@ export_no_formats = "Dieser Datensatz kann nicht exportiert werden."
 export_save = "Datei speichern"
 export_selected = "Auswahl exportieren"
 export_selected_favorites = "Ausgewählte Favoriten exportieren"
+export_send = "Exportiere nach %%service%%"
 export_success = "Export abgeschlossen"
 export_unsupported_format = "Nichtunterstütztes Exportformat"
 external_auth_heading = "Zugriff auf lizenzpflichtige Inhalte"
diff --git a/languages/el.ini b/languages/el.ini
index 1cc5402c2d095401bfa5fb2a77b6b92ecd59d4da..4e8f2f82b80f63386eea833f4e8b10b84420e569 100644
--- a/languages/el.ini
+++ b/languages/el.ini
@@ -347,6 +347,7 @@ export_no_formats = "Αυτή η εγγραφή δεν είναι δυνατόν
 export_save = "Αποθήκευση αρχείου"
 export_selected = "Εξαγωγή επιλεγμένων"
 export_selected_favorites = "Εξαγωγή επιλεγμένων αγαπημένων"
+export_send = "Έναρξη εξαγωγής σε %%service%%"
 export_success = "Η εξαγωγή ολοκληρώθηκε"
 export_unsupported_format = "Αυτός ο τύπος αρχείου δεν υποστηρίζεται για εξαγωγή"
 external_auth_heading = "Πρόσβαση σε αδειοδοτημένο υλικό"
diff --git a/languages/en.ini b/languages/en.ini
index 0203688000a72b9180d62e9eac17fc4ff5714439..1f4dcc4d26c31d115b13e9cf13279b536f16bf40 100644
--- a/languages/en.ini
+++ b/languages/en.ini
@@ -348,7 +348,8 @@ export_no_formats = "This record does not support export."
 export_save = "Save File"
 export_selected = "Export Selected"
 export_selected_favorites = "Export Selected Favorites"
-export_success = "Export Complete"
+export_send = "Send to %%service%%"
+export_success = "Export Ready"
 export_unsupported_format = "Unsupported Export Format"
 external_auth_heading = "Access to licensed material"
 external_auth_login_message = "Login to access licensed material"
diff --git a/languages/es.ini b/languages/es.ini
index 7a07dc4e75c0dcabf51ab4b3e97ea88801382aac..e071e52f16aeac4ac9ea757bb8f517201d1931e3 100644
--- a/languages/es.ini
+++ b/languages/es.ini
@@ -347,6 +347,7 @@ export_no_formats = "Este registro no soporta exportación."
 export_save = "Guardar Archivo"
 export_selected = "Exportar los Seleccionados"
 export_selected_favorites = "Exportar los Favoritos Seleccionados."
+export_send = "Iniciar exportación a %%service%%"
 export_success = "Exportación Completada"
 export_unsupported_format = "Formato de Exportación no soportado."
 external_auth_heading = "Acceso a material licenciado"
diff --git a/languages/eu.ini b/languages/eu.ini
index e797676e912d6688ac166e8a2456a2418f570de6..22862eb2e41171490175c61783acc44acb4b2f71 100644
--- a/languages/eu.ini
+++ b/languages/eu.ini
@@ -967,6 +967,7 @@ export_no_formats = "Esportatzea ezin da erabili erregistro honekin."
 export_save = "Fitxategia gorde"
 export_selected = "Aukeratutakoak esportatu"
 export_selected_favorites = "Gogokoenak esportatu."
+export_send = "Hasi esportatzen hona%%service%%"
 export_success = "Esportazioa burutua"
 export_unsupported_format = "Esportazio formatu hori ezin da erabili."
 external_auth_heading = "Baimendutako materialerako sarbidea"
diff --git a/languages/fi.ini b/languages/fi.ini
index e37e2bb2972d81b4ee057eb22b99736a11319346..52ea267a583635937e504a31fdcfc2c8c14a1cb1 100644
--- a/languages/fi.ini
+++ b/languages/fi.ini
@@ -353,6 +353,7 @@ export_no_formats = "Tämä aineisto ei tue vientitoimintoa."
 export_save = "Tallenna tiedosto"
 export_selected = "Vie valitut"
 export_selected_favorites = "Vie valitut suosikit"
+export_send = "Lähetä palveluun %%service%%"
 export_success = "Vienti valmis"
 export_unsupported_format = "Vienti valitussa muodossa ei onnistu"
 external_auth_heading = "Pääsy lisensioituun aineistoon"
diff --git a/languages/fr.ini b/languages/fr.ini
index 556f18e5d1a1efb547c9e7c3349436ad5478b4ad..a4651030b4476fc0a4230e840c264a986f0b4c07 100644
--- a/languages/fr.ini
+++ b/languages/fr.ini
@@ -343,6 +343,7 @@ export_no_formats = "Cette notice ne peut être exportée."
 export_save = "Enregistrer le fichier"
 export_selected = "Exporter la sélection"
 export_selected_favorites = "Exporter les favoris sélectionnés"
+export_send = "Démarrer l'export vers %%service%%"
 export_success = "Export terminé"
 export_unsupported_format = "Format d'export non supporté"
 external_auth_heading = "Accès aux contenus qui font l'objet d'une licence"
diff --git a/languages/gl.ini b/languages/gl.ini
index 7174aeeb425e5644a8fcf31374db818fe468a1b3..3d49a0d670069da18c0a95024b26fca2333d6c17 100644
--- a/languages/gl.ini
+++ b/languages/gl.ini
@@ -325,6 +325,7 @@ export_no_formats = "Este rexistro non soporta exportación"
 export_save = "Gardar Arquivo"
 export_selected = "Exportar os seleccionados"
 export_selected_favorites = "Exportar os favoritos seleccionados"
+export_send = "Iniciar exportación a %%service%%"
 export_success = "Exportación Completada"
 export_unsupported_format = "Formato de Exportación non soportado"
 FAQs = "Preguntas Frecuentes"
diff --git a/languages/he.ini b/languages/he.ini
index 78ec1a97bcbd4b6afe4ebe713a573180fd15fc01..436df6167a72434c261d85fab2b60b5af71e4580 100644
--- a/languages/he.ini
+++ b/languages/he.ini
@@ -256,6 +256,7 @@ export_no_formats = "רשומה זו לא תומכת ביצוא."
 export_save = "שמירת הקובץ"
 export_selected = "יצוא נבחרים"
 export_selected_favorites = "יצוא מועדפים נבחרים"
+export_send = "התחלת יצוא ל%%service%%"
 export_success = "היצוא הצליח"
 export_unsupported_format = "פורמט יצוא אינו נתמך"
 FAQs = "שאלות נפוצות"
diff --git a/languages/it.ini b/languages/it.ini
index ce4e86489e64e3db1c292cf462267175a6a3ad4e..c07e2d7c54062b96d33717970ddf7ef05a098d66 100644
--- a/languages/it.ini
+++ b/languages/it.ini
@@ -346,6 +346,7 @@ export_no_formats = "Questo record non può essere esportato."
 export_save = "Salva"
 export_selected = "Esporta i selezionati"
 export_selected_favorites = "Esporta i preferiti selezionati"
+export_send = "Esporta verso %%service%%"
 export_success = "Esportazione completata correttamente"
 export_unsupported_format = "Formato di esportazione non supportato"
 external_auth_heading = "Accesso s materiale sottoposto a licenza"
diff --git a/languages/ja.ini b/languages/ja.ini
index 34d1f9da16edaad4cefa1b1024b8d3984d5e9ac0..ef630e896861f75768eea15313966523bb35b996 100644
--- a/languages/ja.ini
+++ b/languages/ja.ini
@@ -347,6 +347,7 @@ export_no_formats = "このレコードはエクスポートできません。"
 export_save = "ファイルを保存"
 export_selected = "選択アイテムをエクスポート"
 export_selected_favorites = "選択したお気に入りをエクスポート"
+export_send = "%%service%%へのエクスポートを開始"
 export_success = "エクスポート完了"
 export_unsupported_format = "未対応のエクスポートフォーマット"
 external_auth_heading = "ライセンス資料にアクセス"
diff --git a/languages/nl.ini b/languages/nl.ini
index 20b89f78cf9ea84e301de24118ba92f48c956c60..4661042e8db38a48e0f1f0c6d82ea7abe15dba68 100644
--- a/languages/nl.ini
+++ b/languages/nl.ini
@@ -347,6 +347,7 @@ export_no_formats = "Dit record ondersteunt exporteren niet"
 export_save = "Bestand opslaan"
 export_selected = "Het geselecteerde exporteren"
 export_selected_favorites = "Geselecteerde favorieten exporteren"
+export_send = "Start exporteren naar %%service%%"
 export_success = "Export afgerond"
 export_unsupported_format = "niet ondersteund Export Format"
 external_auth_heading = "Toegang tot gelicentieerd materiaal"
diff --git a/languages/pl.ini b/languages/pl.ini
index 1f2c810dd50dbd42257aa89fbec75ac2acddb4e4..82667c37a98d66dc4621ce34080e29ac84478ed9 100644
--- a/languages/pl.ini
+++ b/languages/pl.ini
@@ -408,6 +408,7 @@ export_no_formats = "Nie jest możliwe eksportowanie tego zapisu."
 export_save = "Zapisz plik"
 export_selected = "Eksportuj zaznaczone książki"
 export_selected_favorites = "Eksportuj zaznaczone ulubione książki"
+export_send = "Eksportuj do %%service%%"
 export_success = "Eksport zakończony"
 export_unsupported_format = "Niewspomagany format eksportu"
 external_auth_heading = "Logowanie do pełnego dostępu"
diff --git a/languages/pt-br.ini b/languages/pt-br.ini
index 4fffef4b95deadab5c54d02c708667425e3dd5e2..9db855056e5ee8cf22d12beb67a9b80266890826 100644
--- a/languages/pt-br.ini
+++ b/languages/pt-br.ini
@@ -346,6 +346,7 @@ export_no_formats = "Este registro não suporta a exportação."
 export_save = "Salvar arquivo"
 export_selected = "Exportar selec."
 export_selected_favorites = "Exportar os Favoritos selecionados"
+export_send = "A exportar para o serviço %%service%%"
 export_success = "Exportação concluída"
 export_unsupported_format = "Formato de exportação não suportado"
 external_auth_heading = "Acesso a material licenciado"
diff --git a/languages/pt.ini b/languages/pt.ini
index d669b3a199122f1057144d088bfbd7e9b708bde8..5a4573dd36e9218ef28a76a1e202e44a64255bff 100644
--- a/languages/pt.ini
+++ b/languages/pt.ini
@@ -315,6 +315,7 @@ export_no_formats = "Este registo não suporta a exportação."
 export_save = "Guardar arquivo"
 export_selected = "Exportar selec."
 export_selected_favorites = "Exportar os Favoritos seleccionados"
+export_send = "A exportar para o serviço %%service%%"
 export_success = "Exportação concluída"
 export_unsupported_format = "Formato de exportação não suportado"
 FAQs = "FAQs"
diff --git a/languages/ru.ini b/languages/ru.ini
index 517d1676d9a28ef6a4886c6ccc426e7beead5fb6..509f8576e74c2334d699de5a434ca90a945b6fd3 100644
--- a/languages/ru.ini
+++ b/languages/ru.ini
@@ -346,6 +346,7 @@ export_no_formats = "Эта запись не поддерживает эксп
 export_save = "Сохранить файл"
 export_selected = "Экспорт выбран"
 export_selected_favorites = "Экспорт выбранных Избранных"
+export_send = "Запустите экспорт в %%сервис%%"
 export_success = "Экспорт завершен"
 export_unsupported_format = "Неподдерживаемый формат экспорта"
 FAQs = "Часто задаваемые вопросы"
diff --git a/languages/sl.ini b/languages/sl.ini
index 9b5a585320efa76dc8b7c1037a0b937812362146..e6a362659b099774bb869454b035f7186c6524eb 100644
--- a/languages/sl.ini
+++ b/languages/sl.ini
@@ -271,6 +271,7 @@ export_no_formats = "Ta zadetek ne podpira izvoz."
 export_save = "Shrani datoteko"
 export_selected = "Izvoz izbran"
 export_selected_favorites = "Izvozi izbrane priljubljene"
+export_send = "Prični izvoz v %%service%%"
 export_success = "Izvoz končan"
 export_unsupported_format = "Nepodprt izvozni format"
 FAQs = "Pogosta vprašanja"
diff --git a/languages/sv.ini b/languages/sv.ini
index 9f4dd8b2b3d2dff0ece8dec1a07fd92265674258..f1b292f77d7f5e47dfe3d943db12c29c63b78f21 100644
--- a/languages/sv.ini
+++ b/languages/sv.ini
@@ -348,6 +348,7 @@ export_no_formats = "Detta material stöder inte exportfunktionen"
 export_save = "Spara posten"
 export_selected = "Exportera valda"
 export_selected_favorites = "Exportera valda favoriter"
+export_send = "Skicka till %%service%%"
 export_success = "Exporten färdig"
 export_unsupported_format = "Export i det valda formatet är inte möjlig"
 external_auth_heading = "Behörighet att komma åt licensierat material"
diff --git a/languages/tr.ini b/languages/tr.ini
index c10cde0f014cd417194e73463d757ed7f5547d6d..f46e56738fb3bdce862558957b53cadd3124a274 100644
--- a/languages/tr.ini
+++ b/languages/tr.ini
@@ -357,6 +357,7 @@ export_no_formats = "Bu kayıt ihracç desteklemiyor."
 export_save = "Dosyayı Sakla"
 export_selected = "Aktarım seçildi"
 export_selected_favorites = "Seçilmiş Favorileri Aktar"
+export_send = "%%service%% e ihraç etmeyi başlat"
 export_success = "Aktarım Tamamlandı"
 export_unsupported_format = "Desteklenmeyen Aktarım Formatı"
 external_auth_heading = "Lisanslı materyale erişim"
diff --git a/module/VuFind/src/VuFind/Controller/AbstractRecord.php b/module/VuFind/src/VuFind/Controller/AbstractRecord.php
index ed085cc8e7dc6b79a809a5ee16b63a0b64beb5c5..30e54acd2aaa620d3ad3dded243ec54886f81b72 100644
--- a/module/VuFind/src/VuFind/Controller/AbstractRecord.php
+++ b/module/VuFind/src/VuFind/Controller/AbstractRecord.php
@@ -550,12 +550,33 @@ class AbstractRecord extends AbstractBase
                 ->toUrl($export->getRedirectUrl($format, $callback));
         }
 
+        $recordHelper = $this->getViewRenderer()->plugin('record');
+
+        $exportType = $export->getBulkExportType($format);
+        if ('post' === $exportType) {
+            $params = [
+                'exportType' => 'post',
+                'postField' => $export->getPostField($format),
+                'postData' => $recordHelper($driver)->getExport($format),
+                'targetWindow' => $export->getTargetWindow($format),
+                'url' => $export->getRedirectUrl($format, ''),
+                'format' => $format
+            ];
+            $msg = [
+                'translate' => false, 'html' => true,
+                'msg' => $this->getViewRenderer()->render(
+                    'cart/export-success.phtml', $params
+                )
+            ];
+            $this->flashMessenger()->addSuccessMessage($msg);
+            return $this->redirectToRecord();
+        }
+
         // Send appropriate HTTP headers for requested format:
         $response = $this->getResponse();
         $response->getHeaders()->addHeaders($export->getHeaders($format));
 
         // Actually export the record
-        $recordHelper = $this->getViewRenderer()->plugin('record');
         $response->setContent($recordHelper($driver)->getExport($format));
         return $response;
     }
diff --git a/module/VuFind/src/VuFind/Controller/CartController.php b/module/VuFind/src/VuFind/Controller/CartController.php
index c200387c4486b6215c1f3ea13f10f6f86555666e..24fe5f42486c1390c069ac6bc0f0e40202f348dc 100644
--- a/module/VuFind/src/VuFind/Controller/CartController.php
+++ b/module/VuFind/src/VuFind/Controller/CartController.php
@@ -340,13 +340,30 @@ class CartController extends AbstractBase
             if ($export->needsRedirect($format)) {
                 return $this->redirect()->toUrl($url);
             }
+            $exportType = $export->getBulkExportType($format);
+            $params = [
+                'exportType' => $exportType,
+                'format' => $format
+            ];
+            if ('post' === $exportType) {
+                $records = $this->getRecordLoader()->loadBatch($ids);
+                $recordHelper = $this->getViewRenderer()->plugin('record');
+                $parts = [];
+                foreach ($records as $record) {
+                    $parts[] = $recordHelper($record)->getExport($format);
+                }
+
+                $params['postField'] = $export->getPostField($format);
+                $params['postData'] = $export->processGroup($format, $parts);
+                $params['targetWindow'] = $export->getTargetWindow($format);
+                $params['url'] = $export->getRedirectUrl($format, '');
+            } else {
+                $params['url'] = $url;
+            }
             $msg = [
                 'translate' => false, 'html' => true,
                 'msg' => $this->getViewRenderer()->render(
-                    'cart/export-success.phtml', [
-                        'url' => $url,
-                        'exportType' => $export->getBulkExportType($format)
-                    ]
+                    'cart/export-success.phtml', $params
                 )
             ];
             return $this->redirectToSource('success', $msg);
diff --git a/module/VuFind/src/VuFind/Export.php b/module/VuFind/src/VuFind/Export.php
index 3747a81cf03545458142ee1c40aa377d8d0caa50..dcf7d31c1e01ad8bae6edddf545975b85ab7b4ff 100644
--- a/module/VuFind/src/VuFind/Export.php
+++ b/module/VuFind/src/VuFind/Export.php
@@ -160,7 +160,8 @@ class Export
      */
     public function needsRedirect($format)
     {
-        return isset($this->exportConfig->$format->redirectUrl);
+        return !empty($this->exportConfig->$format->redirectUrl)
+            && 'link' === $this->getBulkExportType($format);
     }
 
     /**
@@ -385,4 +386,31 @@ class Export
         }
         return $this->activeFormats[$context];
     }
+
+    /**
+     * Get the export POST field name.
+     *
+     * @param string $format Format identifier
+     *
+     * @return string
+     */
+    public function getPostField($format)
+    {
+        return !empty($this->exportConfig->$format->postField)
+            ? $this->exportConfig->$format->postField : 'ImportData';
+    }
+
+    /**
+     * Get the export target window.
+     *
+     * @param string $format Format identifier
+     *
+     * @return string
+     */
+    public function getTargetWindow($format)
+    {
+        return !empty($this->exportConfig->$format->targetWindow)
+            ? $this->exportConfig->$format->targetWindow
+            : $format . 'Main';
+    }
 }
diff --git a/themes/bootstrap3/templates/cart/export-success.phtml b/themes/bootstrap3/templates/cart/export-success.phtml
index d3b57410399d54d82099b62798abc2ad4dcdd8f2..48cf9dea43ca4920ee7b10ade1dd193aad0d1656 100644
--- a/themes/bootstrap3/templates/cart/export-success.phtml
+++ b/themes/bootstrap3/templates/cart/export-success.phtml
@@ -1,4 +1,14 @@
 <div class="text-center">
-  <?=$this->transEsc('export_success')?>&nbsp;&mdash;&nbsp;
-  <a class="btn btn-primary <?=$this->exportType?>" href="<?=$this->escapeHtmlAttr($this->url)?>"><?=$this->transEsc('export_download')?></a>
+  <? if ('post' === $this->exportType): ?>
+    <form id="export-form" method="POST" action="<?=$this->escapeHtmlAttr($this->url)?>" target="<?=$this->escapeHtmlAttr($this->targetWindow)?>">
+      <input type="hidden" name="<?=$this->escapeHtmlAttr($this->postField)?>" value="<?=$this->escapeHtmlAttr($this->postData)?>">
+      <?=$this->transEsc('export_success')?>&nbsp;&mdash;&nbsp;
+      <input class="btn btn-primary" type="submit" name="submit"
+        value="<?=$this->escapeHtmlAttr($this->translate('export_send', ['%%service%%' => $this->translate($this->export()->getLabelForFormat($this->format))]))?>"
+      >
+    </form>
+  <? else: ?>
+    <?=$this->transEsc('export_success')?>&nbsp;&mdash;&nbsp;
+    <a class="btn btn-primary <?=$this->exportType?>" href="<?=$this->escapeHtmlAttr($this->url)?>"><?=$this->transEsc('export_download')?></a>
+  <? endif; ?>
 </div>