emailengine-app 2.61.1 → 2.61.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +9 -0
- package/data/google-crawlers.json +1 -1
- package/lib/account/account-state.js +248 -0
- package/lib/account.js +17 -178
- package/lib/api-routes/account-routes.js +1006 -0
- package/lib/api-routes/message-routes.js +1377 -0
- package/lib/consts.js +12 -2
- package/lib/email-client/base-client.js +282 -771
- package/lib/email-client/gmail/gmail-api.js +243 -0
- package/lib/email-client/gmail-client.js +145 -53
- package/lib/email-client/imap/mailbox.js +24 -698
- package/lib/email-client/imap/sync-operations.js +812 -0
- package/lib/email-client/imap-client.js +1 -1
- package/lib/email-client/message-builder.js +566 -0
- package/lib/email-client/notification-handler.js +314 -0
- package/lib/email-client/outlook/graph-api.js +326 -0
- package/lib/email-client/outlook-client.js +159 -113
- package/lib/email-client/smtp-pool-manager.js +196 -0
- package/lib/imapproxy/imap-server.js +3 -12
- package/lib/oauth/gmail.js +4 -4
- package/lib/oauth/mail-ru.js +30 -5
- package/lib/oauth/outlook.js +57 -3
- package/lib/oauth/pubsub/google.js +30 -11
- package/lib/oauth/scope-checker.js +202 -0
- package/lib/oauth2-apps.js +8 -4
- package/lib/redis-operations.js +484 -0
- package/lib/routes-ui.js +283 -2582
- package/lib/tools.js +4 -196
- package/lib/ui-routes/account-routes.js +1931 -0
- package/lib/ui-routes/admin-config-routes.js +1233 -0
- package/lib/ui-routes/admin-entities-routes.js +2367 -0
- package/lib/ui-routes/oauth-routes.js +992 -0
- package/lib/utils/network.js +237 -0
- package/package.json +9 -9
- package/sbom.json +1 -1
- package/static/js/app.js +5 -5
- package/static/licenses.html +78 -18
- package/translations/de.mo +0 -0
- package/translations/de.po +85 -82
- package/translations/en.mo +0 -0
- package/translations/en.po +63 -71
- package/translations/et.mo +0 -0
- package/translations/et.po +84 -82
- package/translations/fr.mo +0 -0
- package/translations/fr.po +85 -82
- package/translations/ja.mo +0 -0
- package/translations/ja.po +84 -82
- package/translations/messages.pot +74 -87
- package/translations/nl.mo +0 -0
- package/translations/nl.po +86 -82
- package/translations/pl.mo +0 -0
- package/translations/pl.po +84 -82
- package/views/account/security.hbs +4 -4
- package/views/accounts/account.hbs +13 -13
- package/views/accounts/register/imap-server.hbs +12 -12
- package/views/config/document-store/pre-processing/index.hbs +4 -2
- package/views/config/oauth/app.hbs +6 -7
- package/views/config/oauth/index.hbs +2 -2
- package/views/config/service.hbs +3 -4
- package/views/dashboard.hbs +5 -7
- package/views/error.hbs +22 -7
- package/views/gateways/gateway.hbs +2 -2
- package/views/partials/add_account_modal.hbs +7 -10
- package/views/partials/document_store_header.hbs +1 -1
- package/views/partials/editor_scope_info.hbs +0 -1
- package/views/partials/oauth_config_header.hbs +1 -1
- package/views/partials/side_menu.hbs +3 -3
- package/views/partials/webhook_form.hbs +2 -2
- package/views/templates/index.hbs +1 -1
- package/views/templates/template.hbs +8 -8
- package/views/tokens/index.hbs +6 -6
- package/views/tokens/new.hbs +1 -1
- package/views/webhooks/index.hbs +4 -4
- package/views/webhooks/webhook.hbs +7 -7
- package/workers/api.js +148 -2436
- package/workers/smtp.js +2 -1
- package/lib/imapproxy/imap-core/test/client.js +0 -46
- package/lib/imapproxy/imap-core/test/fixtures/append.eml +0 -1196
- package/lib/imapproxy/imap-core/test/fixtures/chunks.js +0 -44
- package/lib/imapproxy/imap-core/test/fixtures/fix1.eml +0 -6
- package/lib/imapproxy/imap-core/test/fixtures/fix2.eml +0 -599
- package/lib/imapproxy/imap-core/test/fixtures/fix3.eml +0 -32
- package/lib/imapproxy/imap-core/test/fixtures/fix4.eml +0 -6
- package/lib/imapproxy/imap-core/test/fixtures/mimetorture.eml +0 -599
- package/lib/imapproxy/imap-core/test/fixtures/mimetorture.js +0 -2740
- package/lib/imapproxy/imap-core/test/fixtures/mimetorture.json +0 -1411
- package/lib/imapproxy/imap-core/test/fixtures/mimetree.js +0 -85
- package/lib/imapproxy/imap-core/test/fixtures/nodemailer.eml +0 -582
- package/lib/imapproxy/imap-core/test/fixtures/ryan_finnie_mime_torture.eml +0 -599
- package/lib/imapproxy/imap-core/test/fixtures/simple.eml +0 -42
- package/lib/imapproxy/imap-core/test/fixtures/simple.json +0 -164
- package/lib/imapproxy/imap-core/test/imap-compile-stream-test.js +0 -671
- package/lib/imapproxy/imap-core/test/imap-compiler-test.js +0 -272
- package/lib/imapproxy/imap-core/test/imap-indexer-test.js +0 -236
- package/lib/imapproxy/imap-core/test/imap-parser-test.js +0 -922
- package/lib/imapproxy/imap-core/test/memory-notifier.js +0 -129
- package/lib/imapproxy/imap-core/test/prepare.sh +0 -74
- package/lib/imapproxy/imap-core/test/protocol-test.js +0 -1756
- package/lib/imapproxy/imap-core/test/search-test.js +0 -1356
- package/lib/imapproxy/imap-core/test/test-client.js +0 -152
- package/lib/imapproxy/imap-core/test/test-server.js +0 -623
- package/lib/imapproxy/imap-core/test/tools-test.js +0 -22
- package/test/api-test.js +0 -899
- package/test/autoreply-test.js +0 -327
- package/test/bounce-test.js +0 -151
- package/test/complaint-test.js +0 -256
- package/test/fixtures/autoreply/LICENSE +0 -27
- package/test/fixtures/autoreply/rfc3834-01.eml +0 -23
- package/test/fixtures/autoreply/rfc3834-02.eml +0 -24
- package/test/fixtures/autoreply/rfc3834-03.eml +0 -26
- package/test/fixtures/autoreply/rfc3834-04.eml +0 -48
- package/test/fixtures/autoreply/rfc3834-05.eml +0 -19
- package/test/fixtures/autoreply/rfc3834-06.eml +0 -59
- package/test/fixtures/bounces/163.eml +0 -2521
- package/test/fixtures/bounces/fastmail.eml +0 -242
- package/test/fixtures/bounces/gmail.eml +0 -252
- package/test/fixtures/bounces/hotmail.eml +0 -655
- package/test/fixtures/bounces/mailru.eml +0 -121
- package/test/fixtures/bounces/outlook.eml +0 -1107
- package/test/fixtures/bounces/postfix.eml +0 -101
- package/test/fixtures/bounces/rambler.eml +0 -116
- package/test/fixtures/bounces/workmail.eml +0 -142
- package/test/fixtures/bounces/yahoo.eml +0 -139
- package/test/fixtures/bounces/zoho.eml +0 -83
- package/test/fixtures/bounces/zonemta.eml +0 -100
- package/test/fixtures/complaints/LICENSE +0 -27
- package/test/fixtures/complaints/amazonses.eml +0 -72
- package/test/fixtures/complaints/dmarc.eml +0 -59
- package/test/fixtures/complaints/hotmail.eml +0 -49
- package/test/fixtures/complaints/optout.eml +0 -40
- package/test/fixtures/complaints/standard-arf.eml +0 -68
- package/test/fixtures/complaints/yahoo.eml +0 -68
- package/test/oauth2-apps-test.js +0 -301
- package/test/sendonly-test.js +0 -160
- package/test/test-config.js +0 -34
- package/test/webhooks-server.js +0 -39
package/translations/pl.po
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
msgid ""
|
|
2
2
|
msgstr ""
|
|
3
3
|
"Project-Id-Version: \n"
|
|
4
|
-
"POT-Creation-Date: 2025-
|
|
4
|
+
"POT-Creation-Date: 2025-12-29 11:35+0000\n"
|
|
5
5
|
"PO-Revision-Date: \n"
|
|
6
6
|
"Last-Translator: \n"
|
|
7
7
|
"Language-Team: \n"
|
|
@@ -11,7 +11,7 @@ msgstr ""
|
|
|
11
11
|
"Content-Transfer-Encoding: 8bit\n"
|
|
12
12
|
"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 "
|
|
13
13
|
"|| n%100>14) ? 1 : 2);\n"
|
|
14
|
-
"X-Generator: Poedit 3.
|
|
14
|
+
"X-Generator: Poedit 3.8\n"
|
|
15
15
|
|
|
16
16
|
#: views/config/license.hbs:45
|
|
17
17
|
msgid "%d day"
|
|
@@ -20,6 +20,10 @@ msgstr[0] "%d dzień"
|
|
|
20
20
|
msgstr[1] "%d dni"
|
|
21
21
|
msgstr[2] "%d dni"
|
|
22
22
|
|
|
23
|
+
#: views/redirect.hbs:1
|
|
24
|
+
msgid "Click <a href=\"%s\">here</a> to continue…"
|
|
25
|
+
msgstr "Kliknij <a href=\"%s\">tutaj</a>, aby kontynuować…"
|
|
26
|
+
|
|
23
27
|
#: views/unsubscribe.hbs:3 views/unsubscribe.hbs:62 views/unsubscribe.hbs:85
|
|
24
28
|
msgid "Unsubscribe"
|
|
25
29
|
msgstr "Wypisz się"
|
|
@@ -65,10 +69,6 @@ msgstr "Adres e-mail"
|
|
|
65
69
|
msgid "Enter your email address"
|
|
66
70
|
msgstr "Wprowadź swój adres e-mail"
|
|
67
71
|
|
|
68
|
-
#: views/redirect.hbs:1
|
|
69
|
-
msgid "Click <a href=\"%s\">here</a> to continue…"
|
|
70
|
-
msgstr "Kliknij <a href=\"%s\">tutaj</a>, aby kontynuować…"
|
|
71
|
-
|
|
72
72
|
#: views/accounts/register/index.hbs:2
|
|
73
73
|
msgid "Choose your email account provider"
|
|
74
74
|
msgstr "Wybierz dostawcę konta e-mail"
|
|
@@ -77,6 +77,28 @@ msgstr "Wybierz dostawcę konta e-mail"
|
|
|
77
77
|
msgid "Standard IMAP"
|
|
78
78
|
msgstr "Standardowy IMAP"
|
|
79
79
|
|
|
80
|
+
#: views/accounts/register/imap.hbs:11
|
|
81
|
+
msgid "Your name"
|
|
82
|
+
msgstr "Twoje imię"
|
|
83
|
+
|
|
84
|
+
#: views/accounts/register/imap.hbs:17
|
|
85
|
+
msgid "Enter your full name"
|
|
86
|
+
msgstr "Wpisz swoje imię i nazwisko"
|
|
87
|
+
|
|
88
|
+
#: views/accounts/register/imap.hbs:31
|
|
89
|
+
#: views/accounts/register/imap-server.hbs:36
|
|
90
|
+
#: views/accounts/register/imap-server.hbs:128
|
|
91
|
+
msgid "Password"
|
|
92
|
+
msgstr "Hasło"
|
|
93
|
+
|
|
94
|
+
#: views/accounts/register/imap.hbs:37
|
|
95
|
+
msgid "Enter your account password"
|
|
96
|
+
msgstr "Wprowadź hasło do konta"
|
|
97
|
+
|
|
98
|
+
#: views/accounts/register/imap.hbs:51
|
|
99
|
+
msgid "Continue"
|
|
100
|
+
msgstr "Kontynuuj"
|
|
101
|
+
|
|
80
102
|
#: views/accounts/register/imap-server.hbs:19
|
|
81
103
|
msgid "IMAP"
|
|
82
104
|
msgstr "IMAP"
|
|
@@ -86,12 +108,6 @@ msgstr "IMAP"
|
|
|
86
108
|
msgid "Username"
|
|
87
109
|
msgstr "Nazwa użytkownika"
|
|
88
110
|
|
|
89
|
-
#: views/accounts/register/imap-server.hbs:36
|
|
90
|
-
#: views/accounts/register/imap-server.hbs:128
|
|
91
|
-
#: views/accounts/register/imap.hbs:31
|
|
92
|
-
msgid "Password"
|
|
93
|
-
msgstr "Hasło"
|
|
94
|
-
|
|
95
111
|
#: views/accounts/register/imap-server.hbs:45
|
|
96
112
|
#: views/accounts/register/imap-server.hbs:136
|
|
97
113
|
msgid "Important"
|
|
@@ -160,75 +176,59 @@ msgstr ""
|
|
|
160
176
|
"szyfrowania opartego na STARTTLS."
|
|
161
177
|
|
|
162
178
|
#: views/accounts/register/imap-server.hbs:209
|
|
163
|
-
msgid "
|
|
164
|
-
msgstr "
|
|
179
|
+
msgid "Verify connection"
|
|
180
|
+
msgstr "Zweryfikuj polaczenie"
|
|
165
181
|
|
|
166
182
|
#: views/accounts/register/imap-server.hbs:218
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
msgstr "Kontynuuj"
|
|
183
|
+
msgid "Save and continue"
|
|
184
|
+
msgstr "Zapisz i kontynuuj"
|
|
170
185
|
|
|
171
186
|
#: views/accounts/register/imap-server.hbs:226
|
|
172
|
-
msgid "
|
|
173
|
-
msgstr "
|
|
187
|
+
msgid "Skip verification"
|
|
188
|
+
msgstr "Pomin weryfikacje"
|
|
174
189
|
|
|
175
190
|
#: views/accounts/register/imap-server.hbs:241
|
|
176
|
-
msgid "
|
|
177
|
-
msgstr "Test nie
|
|
191
|
+
msgid "Connection test failed"
|
|
192
|
+
msgstr "Test polaczenia nie powiodl sie"
|
|
178
193
|
|
|
179
194
|
#: views/accounts/register/imap-server.hbs:247
|
|
180
|
-
msgid "
|
|
181
|
-
msgstr "Nie
|
|
195
|
+
msgid "We couldn't connect with these settings. Check the errors below."
|
|
196
|
+
msgstr "Nie udalo sie polaczyc z tymi ustawieniami. Sprawdz bledy ponizej."
|
|
182
197
|
|
|
183
198
|
#: views/accounts/register/imap-server.hbs:318
|
|
184
|
-
msgid "
|
|
185
|
-
msgstr "
|
|
199
|
+
msgid "Error"
|
|
200
|
+
msgstr "Blad"
|
|
186
201
|
|
|
187
202
|
#: views/accounts/register/imap-server.hbs:320
|
|
188
|
-
msgid "
|
|
189
|
-
msgstr "
|
|
203
|
+
msgid "Invalid settings"
|
|
204
|
+
msgstr "Nieprawidlowe ustawienia"
|
|
190
205
|
|
|
191
206
|
#: views/accounts/register/imap-server.hbs:326
|
|
192
|
-
msgid "
|
|
193
|
-
msgstr "Nie
|
|
207
|
+
msgid "Couldn't connect to IMAP server"
|
|
208
|
+
msgstr "Nie udalo sie polaczyc z serwerem IMAP"
|
|
194
209
|
|
|
195
210
|
#: views/accounts/register/imap-server.hbs:328
|
|
196
|
-
|
|
197
|
-
|
|
211
|
+
#: views/accounts/register/imap-server.hbs:337
|
|
212
|
+
msgid "Server response:"
|
|
213
|
+
msgstr "Odpowiedz serwera:"
|
|
198
214
|
|
|
199
215
|
#: views/accounts/register/imap-server.hbs:335
|
|
200
|
-
msgid "
|
|
201
|
-
msgstr "Nie
|
|
202
|
-
|
|
203
|
-
#: views/accounts/register/imap-server.hbs:337
|
|
204
|
-
msgid "SMTP Server responded with the following message:"
|
|
205
|
-
msgstr "Serwer SMTP odpowiedział następującym komunikatem:"
|
|
216
|
+
msgid "Couldn't connect to SMTP server"
|
|
217
|
+
msgstr "Nie udalo sie polaczyc z serwerem SMTP"
|
|
206
218
|
|
|
207
219
|
#: views/accounts/register/imap-server.hbs:395
|
|
208
|
-
msgid "
|
|
209
|
-
msgstr "
|
|
210
|
-
|
|
211
|
-
#: views/accounts/register/imap.hbs:11
|
|
212
|
-
msgid "Your name"
|
|
213
|
-
msgstr "Twoje imię"
|
|
220
|
+
msgid "Request failed."
|
|
221
|
+
msgstr "Zadanie nie powiodlo sie."
|
|
214
222
|
|
|
215
|
-
#:
|
|
216
|
-
msgid "Enter your full name"
|
|
217
|
-
msgstr "Wpisz swoje imię i nazwisko"
|
|
218
|
-
|
|
219
|
-
#: views/accounts/register/imap.hbs:37
|
|
220
|
-
msgid "Enter your account password"
|
|
221
|
-
msgstr "Wprowadź hasło do konta"
|
|
222
|
-
|
|
223
|
-
#: lib/routes-ui.js:529
|
|
223
|
+
#: lib/routes-ui.js:532
|
|
224
224
|
msgid "Delegated"
|
|
225
225
|
msgstr "Delegowany"
|
|
226
226
|
|
|
227
|
-
#: lib/routes-ui.js:
|
|
227
|
+
#: lib/routes-ui.js:533
|
|
228
228
|
msgid "Using credentials from \"%s\""
|
|
229
229
|
msgstr "Używanie poświadczeń z \"%s\""
|
|
230
230
|
|
|
231
|
-
#: lib/routes-ui.js:
|
|
231
|
+
#: lib/routes-ui.js:583
|
|
232
232
|
msgid ""
|
|
233
233
|
"Connection timed out. This usually occurs if you are behind a firewall or "
|
|
234
234
|
"connecting to the wrong port."
|
|
@@ -236,11 +236,11 @@ msgstr ""
|
|
|
236
236
|
"Przekroczono limit czasu połączenia. Zwykle dzieje się tak, gdy użytkownik "
|
|
237
237
|
"znajduje się za zaporą sieciową lub łączy się z niewłaściwym portem."
|
|
238
238
|
|
|
239
|
-
#: lib/routes-ui.js:
|
|
239
|
+
#: lib/routes-ui.js:586
|
|
240
240
|
msgid "The server unexpectedly closed the connection."
|
|
241
241
|
msgstr "Serwer nieoczekiwanie zamknął połączenie."
|
|
242
242
|
|
|
243
|
-
#: lib/routes-ui.js:
|
|
243
|
+
#: lib/routes-ui.js:589
|
|
244
244
|
msgid ""
|
|
245
245
|
"The server unexpectedly closed the connection. This usually happens when "
|
|
246
246
|
"attempting to connect to a TLS port without TLS enabled."
|
|
@@ -248,7 +248,7 @@ msgstr ""
|
|
|
248
248
|
"Serwer nieoczekiwanie zamknął połączenie. Zwykle dzieje się tak podczas "
|
|
249
249
|
"próby połączenia z portem TLS bez włączonego protokołu TLS."
|
|
250
250
|
|
|
251
|
-
#: lib/routes-ui.js:
|
|
251
|
+
#: lib/routes-ui.js:594
|
|
252
252
|
msgid ""
|
|
253
253
|
"The server refused the connection. This typically occurs if the server is "
|
|
254
254
|
"not running, is overloaded, or you are connecting to the wrong host or port."
|
|
@@ -256,62 +256,54 @@ msgstr ""
|
|
|
256
256
|
"Serwer odmówił połączenia. Zwykle dzieje się tak, gdy serwer nie działa, "
|
|
257
257
|
"jest przeciążony lub łączysz się z niewłaściwym hostem lub portem."
|
|
258
258
|
|
|
259
|
-
#: lib/routes-ui.js:
|
|
259
|
+
#: lib/routes-ui.js:712
|
|
260
260
|
msgid "Invalid API key for OpenAI"
|
|
261
261
|
msgstr "Nieprawidłowy klucz API dla OpenAI"
|
|
262
262
|
|
|
263
|
-
#: lib/routes-ui.js:
|
|
263
|
+
#: lib/routes-ui.js:5031 lib/routes-ui.js:6986 lib/routes-ui.js:6997
|
|
264
264
|
msgid "Server hostname was not found"
|
|
265
265
|
msgstr "Nie znaleziono nazwy hosta serwera"
|
|
266
266
|
|
|
267
|
-
#: lib/routes-ui.js:
|
|
267
|
+
#: lib/routes-ui.js:5034 lib/routes-ui.js:6989 lib/routes-ui.js:7000
|
|
268
268
|
msgid "Invalid username or password"
|
|
269
269
|
msgstr "Nieprawidłowa nazwa użytkownika lub hasło"
|
|
270
270
|
|
|
271
|
-
#: lib/routes-ui.js:
|
|
271
|
+
#: lib/routes-ui.js:5038 lib/routes-ui.js:7004
|
|
272
272
|
msgid "TLS protocol error"
|
|
273
273
|
msgstr "Błąd protokołu TLS"
|
|
274
274
|
|
|
275
|
-
#: lib/routes-ui.js:
|
|
276
|
-
#: lib/routes-ui.js:
|
|
277
|
-
#: workers/api.js:
|
|
275
|
+
#: lib/routes-ui.js:6733 lib/routes-ui.js:6768 lib/routes-ui.js:6883
|
|
276
|
+
#: lib/routes-ui.js:6930 lib/routes-ui.js:7159 lib/routes-ui.js:7195
|
|
277
|
+
#: workers/api.js:2407
|
|
278
278
|
msgid "Email Account Setup"
|
|
279
279
|
msgstr "Konfiguracja konta e-mail"
|
|
280
280
|
|
|
281
|
-
#: lib/routes-ui.js:
|
|
282
|
-
msgid "
|
|
283
|
-
msgstr "Nie udało się zweryfikować argumentów żądania"
|
|
284
|
-
|
|
285
|
-
#: lib/routes-ui.js:6895 lib/routes-ui.js:7160
|
|
286
|
-
msgid "Failed to process account"
|
|
287
|
-
msgstr "Nie udało się przetworzyć konta"
|
|
281
|
+
#: lib/routes-ui.js:6793 lib/routes-ui.js:6826 lib/routes-ui.js:9745
|
|
282
|
+
msgid "Invalid request. Check your input and try again."
|
|
283
|
+
msgstr "Nie udało się zweryfikować argumentów żądania."
|
|
288
284
|
|
|
289
|
-
#: lib/routes-ui.js:
|
|
285
|
+
#: lib/routes-ui.js:9708 lib/tools.js:794
|
|
290
286
|
msgid "Invalid input"
|
|
291
287
|
msgstr "Nieprawidłowe dane wejściowe"
|
|
292
288
|
|
|
293
|
-
#: lib/routes-ui.js:
|
|
294
|
-
#: lib/routes-ui.js:
|
|
289
|
+
#: lib/routes-ui.js:9718 lib/routes-ui.js:9836 lib/routes-ui.js:9853
|
|
290
|
+
#: lib/routes-ui.js:9889
|
|
295
291
|
msgid "Subscription Management"
|
|
296
292
|
msgstr "Zarządzanie subskrypcjami"
|
|
297
293
|
|
|
298
|
-
#:
|
|
299
|
-
msgid "Failed to process request"
|
|
300
|
-
msgstr "Nie udało się przetworzyć żądania"
|
|
301
|
-
|
|
302
|
-
#: workers/api.js:8996 workers/api.js:9112
|
|
294
|
+
#: workers/api.js:9113 workers/api.js:9229
|
|
303
295
|
msgid "Requested page not found"
|
|
304
296
|
msgstr "Nie znaleziono żądanej strony"
|
|
305
297
|
|
|
306
|
-
#: workers/api.js:
|
|
298
|
+
#: workers/api.js:9114
|
|
307
299
|
msgid "Something went wrong"
|
|
308
300
|
msgstr "Ups... Coś poszlo nie tak"
|
|
309
301
|
|
|
310
|
-
#: lib/tools.js:
|
|
302
|
+
#: lib/tools.js:1493
|
|
311
303
|
msgid "Signature validation failed"
|
|
312
304
|
msgstr "Walidacja podpisu nie powiodła się"
|
|
313
305
|
|
|
314
|
-
#: lib/tools.js:
|
|
306
|
+
#: lib/tools.js:1502 lib/tools.js:1507
|
|
315
307
|
msgid "Invalid or expired account setup URL"
|
|
316
308
|
msgstr "Nieprawidłowy lub wygasły adres URL konfiguracji konta"
|
|
317
309
|
|
|
@@ -326,3 +318,13 @@ msgstr ""
|
|
|
326
318
|
"aplikacji) dla kont e-mail w usługach Outlook.com, Hotmail.com i Microsoft "
|
|
327
319
|
"365. Aby kontynuować, użyj przycisku \"Zaloguj się za pomocą Microsoft\", "
|
|
328
320
|
"aby bezpiecznie połączyć swoje konto."
|
|
321
|
+
|
|
322
|
+
#, fuzzy
|
|
323
|
+
#~| msgid "Failed to process account"
|
|
324
|
+
#~ msgid "Couldn't set up account. Try again."
|
|
325
|
+
#~ msgstr "Nie udało się przetworzyć konta"
|
|
326
|
+
|
|
327
|
+
#, fuzzy
|
|
328
|
+
#~| msgid "Failed to process request"
|
|
329
|
+
#~ msgid "Couldn't process request. Try again."
|
|
330
|
+
#~ msgstr "Nie udało się przetworzyć żądania"
|
|
@@ -113,8 +113,8 @@
|
|
|
113
113
|
<form method="post" action="/admin/account/tfa/disable">
|
|
114
114
|
<input type="hidden" name="crumb" value="{{crumb}}" />
|
|
115
115
|
<input type="hidden" name="type" value="totp" />
|
|
116
|
-
<button type="button" class="btn btn-secondary" data-dismiss="modal">
|
|
117
|
-
<button type="submit" class="btn btn-danger">
|
|
116
|
+
<button type="button" class="btn btn-secondary" data-dismiss="modal">Cancel</button>
|
|
117
|
+
<button type="submit" class="btn btn-danger">Disable 2FA</button>
|
|
118
118
|
</form>
|
|
119
119
|
</div>
|
|
120
120
|
</div>
|
|
@@ -151,7 +151,7 @@
|
|
|
151
151
|
|
|
152
152
|
<input type="hidden" name="crumb" value="{{crumb}}" />
|
|
153
153
|
<input type="hidden" name="type" value="totp" />
|
|
154
|
-
<button type="button" class="btn btn-secondary" data-dismiss="modal">
|
|
154
|
+
<button type="button" class="btn btn-secondary" data-dismiss="modal">Cancel</button>
|
|
155
155
|
<button type="submit" class="btn btn-primary">Enable 2FA</button>
|
|
156
156
|
</div>
|
|
157
157
|
</div>
|
|
@@ -177,7 +177,7 @@
|
|
|
177
177
|
<div class="modal-footer">
|
|
178
178
|
|
|
179
179
|
<input type="hidden" name="crumb" value="{{crumb}}" />
|
|
180
|
-
<button type="button" class="btn btn-secondary" data-dismiss="modal">
|
|
180
|
+
<button type="button" class="btn btn-secondary" data-dismiss="modal">Cancel</button>
|
|
181
181
|
<button type="submit" class="btn btn-primary"><i
|
|
182
182
|
class="fas fa-sign-out-alt fa-sm fa-fw mr-2 text-gray-400"></i> Sign Out Everywhere</button>
|
|
183
183
|
</div>
|
|
@@ -15,12 +15,12 @@
|
|
|
15
15
|
|
|
16
16
|
<a type="button" class="btn btn-light" href="/admin/accounts/{{account.account}}/edit"
|
|
17
17
|
title="Edit account configuration" data-toggle="tooltip" data-placement="top">
|
|
18
|
-
<i class="fas fa-user-edit fa-fw"></i> Edit
|
|
18
|
+
<i class="fas fa-user-edit fa-fw"></i> Edit account
|
|
19
19
|
</a>
|
|
20
20
|
|
|
21
21
|
<button type="button" class="btn btn-light" data-toggle="modal" data-target="#deleteModal"
|
|
22
22
|
title="Delete this account and all associated data" id="delete-btn" data-placement="top">
|
|
23
|
-
<i class="fas fa-trash-alt fa-fw"></i> Delete
|
|
23
|
+
<i class="fas fa-trash-alt fa-fw"></i> Delete account
|
|
24
24
|
</button>
|
|
25
25
|
|
|
26
26
|
<button type="button" class="btn btn-light" id="request-reconnect"
|
|
@@ -87,7 +87,7 @@
|
|
|
87
87
|
{{#if canReadMail}}
|
|
88
88
|
<a type="button" class="btn btn-light" href="/admin/accounts/{{account.account}}/browse"
|
|
89
89
|
title="Browse messages" data-toggle="tooltip" data-placement="top">
|
|
90
|
-
<i class="fas fa-folder-open fa-fw"></i> Browse
|
|
90
|
+
<i class="fas fa-folder-open fa-fw"></i> Browse messages
|
|
91
91
|
</a>
|
|
92
92
|
{{/if}}
|
|
93
93
|
</div>
|
|
@@ -98,7 +98,7 @@
|
|
|
98
98
|
title="Re-authenticate OAuth2 account" id="renew-grant-btn" data-placement="top">
|
|
99
99
|
{{#if account.type.icon}}
|
|
100
100
|
<i class="{{account.type.icon}} fa-fw"></i>
|
|
101
|
-
{{/if}}
|
|
101
|
+
{{/if}} Re-authenticate
|
|
102
102
|
</button>
|
|
103
103
|
</div>
|
|
104
104
|
{{/if}}
|
|
@@ -181,7 +181,7 @@
|
|
|
181
181
|
<div class="dropdown-menu" aria-labelledby="dropdownMenuLink">
|
|
182
182
|
<a class="dropdown-item" href="#" id="toggle-logs">{{#if
|
|
183
183
|
account.logs}}Disable{{else}}Enable{{/if}}</a>
|
|
184
|
-
<a class="dropdown-item" href="#" id="flush-logs">
|
|
184
|
+
<a class="dropdown-item" href="#" id="flush-logs">Clear stored logs</a>
|
|
185
185
|
</div>
|
|
186
186
|
</div>
|
|
187
187
|
|
|
@@ -787,7 +787,7 @@
|
|
|
787
787
|
<div class="modal-dialog">
|
|
788
788
|
<div class="modal-content">
|
|
789
789
|
<div class="modal-header">
|
|
790
|
-
<h5 class="modal-title" id="renewGrantLabel">
|
|
790
|
+
<h5 class="modal-title" id="renewGrantLabel">Re-authenticate account</h5>
|
|
791
791
|
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
|
|
792
792
|
<span aria-hidden="true">×</span>
|
|
793
793
|
</button>
|
|
@@ -805,11 +805,11 @@
|
|
|
805
805
|
<input type="hidden" name="type" value="{{account.oauth2.provider}}">
|
|
806
806
|
<input type="hidden" name="data" value="{{accountForm.data}}">
|
|
807
807
|
<input type="hidden" name="sig" value="{{accountForm.signature}}">
|
|
808
|
-
<button type="button" class="btn btn-secondary" data-dismiss="modal">
|
|
808
|
+
<button type="button" class="btn btn-secondary" data-dismiss="modal">Cancel</button>
|
|
809
809
|
<button type="submit" class="btn btn-primary">
|
|
810
810
|
{{#if account.type.icon}}
|
|
811
811
|
<i class="{{account.type.icon}} fa-fw"></i>
|
|
812
|
-
{{/if}}
|
|
812
|
+
{{/if}} Re-authenticate
|
|
813
813
|
</button>
|
|
814
814
|
</form>
|
|
815
815
|
</div>
|
|
@@ -821,20 +821,20 @@
|
|
|
821
821
|
<div class="modal-dialog">
|
|
822
822
|
<div class="modal-content">
|
|
823
823
|
<div class="modal-header">
|
|
824
|
-
<h5 class="modal-title" id="deleteModalLabel">Delete
|
|
824
|
+
<h5 class="modal-title" id="deleteModalLabel">Delete Account</h5>
|
|
825
825
|
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
|
|
826
826
|
<span aria-hidden="true">×</span>
|
|
827
827
|
</button>
|
|
828
828
|
</div>
|
|
829
829
|
<div class="modal-body">
|
|
830
|
-
<p>Are you sure you want to delete the account for {{account.name}}? This action
|
|
831
|
-
|
|
830
|
+
<p>Are you sure you want to delete the account for {{account.name}}? This action cannot be
|
|
831
|
+
undone.</p>
|
|
832
832
|
</div>
|
|
833
833
|
<div class="modal-footer">
|
|
834
834
|
<form method="post" action="/admin/accounts/{{account.account}}/delete">
|
|
835
835
|
<input type="hidden" name="crumb" value="{{crumb}}" />
|
|
836
|
-
<button type="button" class="btn btn-secondary" data-dismiss="modal">
|
|
837
|
-
<button type="submit" class="btn btn-danger">Delete</button>
|
|
836
|
+
<button type="button" class="btn btn-secondary" data-dismiss="modal">Cancel</button>
|
|
837
|
+
<button type="submit" class="btn btn-danger">Delete account</button>
|
|
838
838
|
</form>
|
|
839
839
|
</div>
|
|
840
840
|
</div>
|
|
@@ -206,7 +206,7 @@
|
|
|
206
206
|
<span class="icon text-white-50">
|
|
207
207
|
<i class="fas fa-question-circle"></i>
|
|
208
208
|
</span>
|
|
209
|
-
<span class="text">{{_ "
|
|
209
|
+
<span class="text">{{_ "Verify connection" templateLocale }}</span>
|
|
210
210
|
</button>
|
|
211
211
|
|
|
212
212
|
<div class="btn-group">
|
|
@@ -215,7 +215,7 @@
|
|
|
215
215
|
<span class="icon text-white-50">
|
|
216
216
|
<i class="fas fa-arrow-right"></i>
|
|
217
217
|
</span>
|
|
218
|
-
<span class="text">{{_ "
|
|
218
|
+
<span class="text">{{_ "Save and continue" templateLocale }}</span>
|
|
219
219
|
</button>
|
|
220
220
|
<button type="button" id="submit-settings-btn-down"
|
|
221
221
|
class="btn btn-secondary dropdown-toggle dropdown-toggle-split" data-toggle="dropdown"
|
|
@@ -223,7 +223,7 @@
|
|
|
223
223
|
<span class="sr-only">Toggle Dropdown</span>
|
|
224
224
|
</button>
|
|
225
225
|
<div class="dropdown-menu">
|
|
226
|
-
<a class="dropdown-item" href="#" id="submit-wo-testing">{{_ "
|
|
226
|
+
<a class="dropdown-item" href="#" id="submit-wo-testing">{{_ "Skip verification"
|
|
227
227
|
templateLocale }}</a>
|
|
228
228
|
</div>
|
|
229
229
|
</div>
|
|
@@ -238,13 +238,13 @@
|
|
|
238
238
|
<div class="modal-dialog modal-lg">
|
|
239
239
|
<div class="modal-content">
|
|
240
240
|
<div class="modal-header">
|
|
241
|
-
<h5 class="modal-title" id="testResponseModalLabel">{{_ "
|
|
241
|
+
<h5 class="modal-title" id="testResponseModalLabel">{{_ "Connection test failed" templateLocale }}</h5>
|
|
242
242
|
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
|
|
243
243
|
<span aria-hidden="true">×</span>
|
|
244
244
|
</button>
|
|
245
245
|
</div>
|
|
246
246
|
<div class="modal-body">
|
|
247
|
-
<p>{{_ "
|
|
247
|
+
<p>{{_ "We couldn't connect with these settings. Check the errors below." templateLocale}}</p>
|
|
248
248
|
<dl class="row" id="test-errors-list"></dl>
|
|
249
249
|
</div>
|
|
250
250
|
<div class="modal-footer">
|
|
@@ -315,26 +315,26 @@
|
|
|
315
315
|
errorsListElm.innerHTML = '';
|
|
316
316
|
|
|
317
317
|
if (data.error && !data.fields) {
|
|
318
|
-
addErrorRow('{{_ "
|
|
318
|
+
addErrorRow('{{_ "Error" templateLocale }}', data.error.message || data.error)
|
|
319
319
|
} else if (data.fields) {
|
|
320
|
-
addErrorRow('{{_ "
|
|
320
|
+
addErrorRow('{{_ "Invalid settings" templateLocale }}', data.message);
|
|
321
321
|
for (let field of data.fields) {
|
|
322
322
|
addErrorRow('-', field.message, 'aaaa', 'bbbbbb');
|
|
323
323
|
}
|
|
324
324
|
} else {
|
|
325
325
|
if (!data.imap || !data.imap.success) {
|
|
326
|
-
let error = data.imap && data.imap.error || '{{_ "
|
|
326
|
+
let error = data.imap && data.imap.error || '{{_ "Couldn't connect to IMAP server" templateLocale }}'
|
|
327
327
|
if (data.imap && data.imap.responseText) {
|
|
328
|
-
addErrorRow('IMAP', error, '{{_ "
|
|
328
|
+
addErrorRow('IMAP', error, '{{_ "Server response:" templateLocale }}', data.imap.responseText);
|
|
329
329
|
} else {
|
|
330
330
|
addErrorRow('IMAP', error);
|
|
331
331
|
}
|
|
332
332
|
}
|
|
333
333
|
|
|
334
334
|
if (!data.smtp || !data.smtp.success) {
|
|
335
|
-
let error = data.smtp && data.smtp.error || '{{_ "
|
|
335
|
+
let error = data.smtp && data.smtp.error || '{{_ "Couldn't connect to SMTP server" templateLocale }}'
|
|
336
336
|
if (data.smtp && data.smtp.responseText) {
|
|
337
|
-
addErrorRow('SMTP', error, '{{_ "
|
|
337
|
+
addErrorRow('SMTP', error, '{{_ "Server response:" templateLocale }}', data.smtp.responseText);
|
|
338
338
|
} else {
|
|
339
339
|
addErrorRow('SMTP', error);
|
|
340
340
|
}
|
|
@@ -392,7 +392,7 @@
|
|
|
392
392
|
console.error(err)
|
|
393
393
|
}
|
|
394
394
|
|
|
395
|
-
throw new Error(`{{_ "
|
|
395
|
+
throw new Error(`{{_ "Request failed." templateLocale}} status: ${res.status}`);
|
|
396
396
|
}
|
|
397
397
|
|
|
398
398
|
const data = await res.json();
|
|
@@ -52,7 +52,8 @@
|
|
|
52
52
|
<div style="line-height: 1; margin-bottom: 10px;">
|
|
53
53
|
<small>JavaScript code to determine if the email should be stored. If the code evaluates to
|
|
54
54
|
<code>true</code> then the email is synced to the document store, otherwise it is skipped. The
|
|
55
|
-
script includes <code>payload</code> as a global variable that contains the email data
|
|
55
|
+
script includes <code>payload</code> as a global variable that contains the email data.
|
|
56
|
+
Use <code>env</code> to access <a href="/admin/config/service#scriptEnv">script variables</a>.</small>
|
|
56
57
|
</div>
|
|
57
58
|
<div id="editor-fn" class="code-editor"></div>
|
|
58
59
|
<div class="editor-embed-block">
|
|
@@ -89,7 +90,8 @@
|
|
|
89
90
|
<div style="line-height: 1; margin-bottom: 10px;">
|
|
90
91
|
<small>JavaScript code to modify email payload structure. Protected fields <code>id</code>,
|
|
91
92
|
<code>account</code>, <code>path</code>, <code>uid</code>, <code>specialUse</code>, and
|
|
92
|
-
<code>messageId</code>
|
|
93
|
+
<code>messageId</code> cannot be modified.
|
|
94
|
+
Use <code>env</code> to access <a href="/admin/config/service#scriptEnv">script variables</a>.</small>
|
|
93
95
|
</div>
|
|
94
96
|
|
|
95
97
|
<div class="row">
|
|
@@ -30,12 +30,12 @@
|
|
|
30
30
|
|
|
31
31
|
<a type="button" class="btn btn-light" href="/admin/config/oauth/edit/{{app.id}}"
|
|
32
32
|
title="Edit OAuth2 application" data-toggle="tooltip" data-placement="top">
|
|
33
|
-
<i class="fas fa-user-edit fa-fw"></i> Edit
|
|
33
|
+
<i class="fas fa-user-edit fa-fw"></i> Edit app
|
|
34
34
|
</a>
|
|
35
35
|
|
|
36
36
|
<button type="button" class="btn btn-light" data-toggle="modal" data-target="#deleteModal"
|
|
37
37
|
title="Delete this application" id="delete-btn" data-placement="top">
|
|
38
|
-
<i class="fas fa-trash-alt fa-fw"></i> Delete
|
|
38
|
+
<i class="fas fa-trash-alt fa-fw"></i> Delete app
|
|
39
39
|
</button>
|
|
40
40
|
|
|
41
41
|
</div>
|
|
@@ -280,21 +280,20 @@
|
|
|
280
280
|
<div class="modal-dialog">
|
|
281
281
|
<div class="modal-content">
|
|
282
282
|
<div class="modal-header">
|
|
283
|
-
<h5 class="modal-title" id="deleteModalLabel">Delete
|
|
283
|
+
<h5 class="modal-title" id="deleteModalLabel">Delete OAuth2 App</h5>
|
|
284
284
|
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
|
|
285
285
|
<span aria-hidden="true">×</span>
|
|
286
286
|
</button>
|
|
287
287
|
</div>
|
|
288
288
|
<div class="modal-body">
|
|
289
|
-
<p>Are you sure you want to delete the OAuth2 application "{{app.name}}"? This action
|
|
290
|
-
recoverable.</p>
|
|
289
|
+
<p>Are you sure you want to delete the OAuth2 application "{{app.name}}"? This action cannot be undone.</p>
|
|
291
290
|
</div>
|
|
292
291
|
<div class="modal-footer">
|
|
293
292
|
<form method="post" action="/admin/config/oauth/delete" class="pending-form">
|
|
294
293
|
<input type="hidden" name="crumb" value="{{crumb}}" />
|
|
295
294
|
<input type="hidden" name="app" value="{{app.id}}" />
|
|
296
|
-
<button type="button" class="btn btn-secondary" data-dismiss="modal">
|
|
297
|
-
<button type="submit" class="btn btn-danger"><i class="fas fa-trash-alt"></i> Delete</button>
|
|
295
|
+
<button type="button" class="btn btn-secondary" data-dismiss="modal">Cancel</button>
|
|
296
|
+
<button type="submit" class="btn btn-danger"><i class="fas fa-trash-alt"></i> Delete app</button>
|
|
298
297
|
</form>
|
|
299
298
|
</div>
|
|
300
299
|
</div>
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
<div class="float-right">
|
|
2
2
|
<div class="btn-group">
|
|
3
3
|
<button class="btn btn-primary dropdown-toggle" data-toggle="dropdown" aria-expanded="false">
|
|
4
|
-
<i class="fas fa-plus fa-fw" id="test-smtp-icon"></i> Create
|
|
4
|
+
<i class="fas fa-plus fa-fw" id="test-smtp-icon"></i> Create OAuth2 app
|
|
5
5
|
</button>
|
|
6
6
|
<div class="dropdown-menu">
|
|
7
7
|
<a class="dropdown-item" href="{{newLink}}?provider=gmail">Gmail</a>
|
|
@@ -135,7 +135,7 @@
|
|
|
135
135
|
{{#if firstPage}}
|
|
136
136
|
No OAuth2 apps have been registered yet.
|
|
137
137
|
{{else}}
|
|
138
|
-
|
|
138
|
+
No OAuth2 apps found.
|
|
139
139
|
{{/if}}
|
|
140
140
|
</p>
|
|
141
141
|
</div>
|
package/views/config/service.hbs
CHANGED
|
@@ -445,12 +445,12 @@
|
|
|
445
445
|
|
|
446
446
|
<p>Global settings for filter and map functions in <a href="/admin/webhooks">webhook routes</a>.</p>
|
|
447
447
|
|
|
448
|
-
<div class="form-group">
|
|
448
|
+
<div class="form-group" id="scriptEnv">
|
|
449
449
|
|
|
450
450
|
<div class="text-muted float-right code-link">[<a href="/admin/swagger#/Settings/postV1Settings"
|
|
451
451
|
target="_blank" rel="noopener noreferrer">scriptEnv</a>]</div>
|
|
452
452
|
|
|
453
|
-
<label>
|
|
453
|
+
<label>Script Variables (JSON)</label>
|
|
454
454
|
|
|
455
455
|
<input type="hidden" class="{{#if errors.scriptEnv}}is-invalid{{/if}}" id="scriptEnvElement"
|
|
456
456
|
name="scriptEnv" value="{{values.scriptEnv}}">
|
|
@@ -469,8 +469,7 @@
|
|
|
469
469
|
<span class="invalid-feedback">{{errors.scriptEnv}}</span>
|
|
470
470
|
{{/if}}
|
|
471
471
|
|
|
472
|
-
<small class="form-text text-muted">JSON object available as <code>env</code> variable in all
|
|
473
|
-
scripts.</small>
|
|
472
|
+
<small class="form-text text-muted">JSON object available as <code>env</code> variable in all filter and map functions. Use for shared secrets like API keys, access tokens, or configuration values. For example, if set to <code>{"token":"secret123"}</code>, then <code>env.token</code> in your scripts returns <code>"secret123"</code>.</small>
|
|
474
473
|
</div>
|
|
475
474
|
|
|
476
475
|
</div>
|
package/views/dashboard.hbs
CHANGED
|
@@ -52,14 +52,12 @@
|
|
|
52
52
|
<div class="col mr-2">
|
|
53
53
|
<div class="text-xs font-weight-bold text-success text-uppercase mb-1">Welcome to EmailEngine!
|
|
54
54
|
</div>
|
|
55
|
-
<p>
|
|
56
|
-
|
|
57
|
-
and receive emails using the <a href="/admin/swagger">EmailEngine API</a>.
|
|
55
|
+
<p>Get started by connecting your first email account. Once connected, you can send
|
|
56
|
+
and receive emails through the <a href="/admin/swagger">API</a>.
|
|
58
57
|
</p>
|
|
59
|
-
<p>You can add
|
|
58
|
+
<p class="text-muted small">You can also add accounts programmatically via the <a
|
|
60
59
|
href="https://api.emailengine.app/#operation/postV1Account" target="_blank"
|
|
61
|
-
rel="noopener noreferrer" referrerpolicy="no-referrer">
|
|
62
|
-
accounts</a> or through the hosted authentication form.
|
|
60
|
+
rel="noopener noreferrer" referrerpolicy="no-referrer">API endpoint</a>.
|
|
63
61
|
</p>
|
|
64
62
|
<div>
|
|
65
63
|
<button type="button" class="btn btn-primary btn-icon-split" data-toggle="modal"
|
|
@@ -67,7 +65,7 @@
|
|
|
67
65
|
<span class="icon text-white-50">
|
|
68
66
|
<i class="fas fa-user-plus"></i>
|
|
69
67
|
</span>
|
|
70
|
-
<span class="text">
|
|
68
|
+
<span class="text">Connect your first account</span>
|
|
71
69
|
</button>
|
|
72
70
|
</div>
|
|
73
71
|
</div>
|