mirror of
https://github.com/the-djmaze/snappymail.git
synced 2026-07-11 00:14:50 +03:00
Resolve #840
This commit is contained in:
parent
af3cecb2e1
commit
a52881fb67
43 changed files with 79 additions and 11 deletions
|
|
@ -12,8 +12,15 @@ import { OpenPgpKeyPopupView } from 'View/Popup/OpenPgpKey';
|
|||
import { AskPopupView } from 'View/Popup/Ask';
|
||||
|
||||
const
|
||||
askPassphrase = async (privateKey, btnTxt = 'LABEL_SIGN') =>
|
||||
await AskPopupView.password('GnuPG key<br>' + privateKey.id + ' ' + privateKey.emails[0], 'OPENPGP/'+btnTxt),
|
||||
passphrases = new Map(),
|
||||
askPassphrase = async (privateKey, btnTxt = 'LABEL_SIGN') => {
|
||||
const key = privateKey.id,
|
||||
pass = passphrases.has(key)
|
||||
? {password:passphrases.get(key), remember:false}
|
||||
: await AskPopupView.password('GnuPG key<br>' + key + ' ' + privateKey.emails[0], 'OPENPGP/'+btnTxt);
|
||||
pass && pass.remember && passphrases.set(key, pass.password);
|
||||
return pass.password;
|
||||
},
|
||||
|
||||
findGnuPGKey = (keys, query/*, sign*/) =>
|
||||
keys.find(key =>
|
||||
|
|
|
|||
|
|
@ -18,15 +18,21 @@ const
|
|||
key.emails.includes(query) || query == key.id || query == key.fingerprint
|
||||
),
|
||||
|
||||
passphrases = new Map(),
|
||||
decryptKey = async (privateKey, btnTxt = 'LABEL_SIGN') => {
|
||||
if (privateKey.key.isDecrypted()) {
|
||||
return privateKey.key;
|
||||
}
|
||||
const passphrase = await AskPopupView.password(
|
||||
'OpenPGP.js key<br>' + privateKey.id + ' ' + privateKey.emails[0],
|
||||
'OPENPGP/'+btnTxt
|
||||
);
|
||||
if (null !== passphrase) {
|
||||
const key = privateKey.id,
|
||||
pass = passphrases.has(key)
|
||||
? {password:passphrases.get(key), remember:false}
|
||||
: await AskPopupView.password(
|
||||
'OpenPGP.js key<br>' + privateKey.id + ' ' + privateKey.emails[0],
|
||||
'OPENPGP/'+btnTxt
|
||||
);
|
||||
if (pass) {
|
||||
pass.remember && passphrases.set(key, pass.password);
|
||||
let passphrase = pass.password;
|
||||
return await openpgp.decryptKey({
|
||||
privateKey: privateKey.key,
|
||||
passphrase
|
||||
|
|
|
|||
|
|
@ -14,7 +14,9 @@ export class AskPopupView extends AbstractViewPopup {
|
|||
username: '',
|
||||
askUsername: false,
|
||||
passphrase: '',
|
||||
askPass: false
|
||||
askPass: false,
|
||||
remember: true,
|
||||
askRemeber: false
|
||||
});
|
||||
|
||||
this.fYesAction = null;
|
||||
|
|
@ -46,8 +48,10 @@ export class AskPopupView extends AbstractViewPopup {
|
|||
this.askDesc(sAskDesc || '');
|
||||
this.askUsername(ask & 2);
|
||||
this.askPass(ask & 1);
|
||||
this.askRemeber(ask & 4);
|
||||
this.username('');
|
||||
this.passphrase('');
|
||||
this.remember(true);
|
||||
this.yesButton(i18n(btnText || 'GLOBAL/YES'));
|
||||
this.noButton(i18n(ask ? 'GLOBAL/CANCEL' : 'GLOBAL/NO'));
|
||||
this.fYesAction = fYesFunc;
|
||||
|
|
@ -86,10 +90,10 @@ AskPopupView.password = function(sAskDesc, btnText) {
|
|||
return new Promise(resolve => {
|
||||
this.showModal([
|
||||
sAskDesc,
|
||||
view => resolve(view.passphrase()),
|
||||
view => resolve({password:view.passphrase(), remember:view.remember()}),
|
||||
() => resolve(null),
|
||||
true,
|
||||
1,
|
||||
5,
|
||||
btnText
|
||||
]);
|
||||
});
|
||||
|
|
@ -99,7 +103,7 @@ AskPopupView.credentials = function(sAskDesc, btnText) {
|
|||
return new Promise(resolve => {
|
||||
this.showModal([
|
||||
sAskDesc,
|
||||
view => resolve({username:view.username(), password:view.passphrase()}),
|
||||
view => resolve({username:view.username(), password:view.passphrase(), remember:view.remember()}),
|
||||
() => resolve(null),
|
||||
true,
|
||||
3,
|
||||
|
|
|
|||
|
|
@ -201,10 +201,16 @@ class SmtpClient extends \MailSo\Net\NetClient
|
|||
$sCmd .= ' SIZE='.$iSizeIfSupported;
|
||||
}
|
||||
|
||||
// RFC 3461
|
||||
if ($bDsn && $this->hasCapability('DSN')) {
|
||||
$sCmd .= ' RET=HDRS';
|
||||
}
|
||||
|
||||
// RFC 6152
|
||||
if ($this->hasCapability('8BITMIME')) {
|
||||
// $sCmd .= ' BODY=8BITMIME';
|
||||
}
|
||||
|
||||
// RFC 8689
|
||||
if ($bRequireTLS && $this->hasCapability('REQUIRETLS')) {
|
||||
$sCmd .= ' REQUIRETLS';
|
||||
|
|
|
|||
|
|
@ -22,6 +22,7 @@
|
|||
"NOT_SPAM": "ليست رسائل غير مرغوب فيها",
|
||||
"USERNAME": "اسم المستخدم",
|
||||
"PASSWORD": "كلمة السر",
|
||||
"REMEMBER": "Remember",
|
||||
"REPLY_TO": "الرد-الى",
|
||||
"SAVE": "حفظ",
|
||||
"SAVE_CHANGES": "Save changes?",
|
||||
|
|
|
|||
|
|
@ -22,6 +22,7 @@
|
|||
"NOT_SPAM": "Не е спам",
|
||||
"USERNAME": "Потребителско име",
|
||||
"PASSWORD": "Парола",
|
||||
"REMEMBER": "Remember",
|
||||
"REPLY_TO": "Отговори на",
|
||||
"SAVE": "Запази",
|
||||
"SAVE_CHANGES": "Save changes?",
|
||||
|
|
|
|||
|
|
@ -22,6 +22,7 @@
|
|||
"NOT_SPAM": "Není to spam",
|
||||
"USERNAME": "Uživatelské jméno",
|
||||
"PASSWORD": "Heslo",
|
||||
"REMEMBER": "Remember",
|
||||
"REPLY_TO": "Adresa odpovědi",
|
||||
"SAVE": "Uložit",
|
||||
"SAVE_CHANGES": "Save changes?",
|
||||
|
|
|
|||
|
|
@ -22,6 +22,7 @@
|
|||
"NOT_SPAM": "Ikke uønsket",
|
||||
"USERNAME": "Brugernavn",
|
||||
"PASSWORD": "Adgangskode",
|
||||
"REMEMBER": "Remember",
|
||||
"REPLY_TO": "Svar til",
|
||||
"SAVE": "Gem",
|
||||
"SAVE_CHANGES": "Save changes?",
|
||||
|
|
|
|||
|
|
@ -22,6 +22,7 @@
|
|||
"NOT_SPAM": "Kein Spam",
|
||||
"USERNAME": "Nutzername",
|
||||
"PASSWORD": "Passwort",
|
||||
"REMEMBER": "Remember",
|
||||
"REPLY_TO": "Antwort an",
|
||||
"SAVE": "Speichern",
|
||||
"SAVE_CHANGES": "Änderungen speichern?",
|
||||
|
|
|
|||
|
|
@ -22,6 +22,7 @@
|
|||
"NOT_SPAM": "Όχι ανεπιθύμητο",
|
||||
"USERNAME": "Όνομα χρήστη",
|
||||
"PASSWORD": "Κωδικός πρόσβασης",
|
||||
"REMEMBER": "Remember",
|
||||
"REPLY_TO": "Απάντηση στον",
|
||||
"SAVE": "Αποθήκευση",
|
||||
"SAVE_CHANGES": "Save changes?",
|
||||
|
|
|
|||
|
|
@ -22,6 +22,7 @@
|
|||
"NOT_SPAM": "Not Spam",
|
||||
"USERNAME": "Username",
|
||||
"PASSWORD": "Password",
|
||||
"REMEMBER": "Remember",
|
||||
"REPLY_TO": "Reply-To",
|
||||
"SAVE": "Save",
|
||||
"SAVE_CHANGES": "Save changes?",
|
||||
|
|
|
|||
|
|
@ -22,6 +22,7 @@
|
|||
"NOT_SPAM": "Not Spam",
|
||||
"USERNAME": "Username",
|
||||
"PASSWORD": "Password",
|
||||
"REMEMBER": "Remember",
|
||||
"REPLY_TO": "Reply-To",
|
||||
"SAVE": "Save",
|
||||
"SAVE_CHANGES": "Save changes?",
|
||||
|
|
|
|||
|
|
@ -22,6 +22,7 @@
|
|||
"NOT_SPAM": "Correo no deseado",
|
||||
"USERNAME": "Nombre de usuario",
|
||||
"PASSWORD": "Contraseña",
|
||||
"REMEMBER": "Remember",
|
||||
"REPLY_TO": "Responder",
|
||||
"SAVE": "Guardar",
|
||||
"SAVE_CHANGES": "Save changes?",
|
||||
|
|
|
|||
|
|
@ -22,6 +22,7 @@
|
|||
"NOT_SPAM": "Ei ole rämpspost",
|
||||
"USERNAME": "Kasutajanimi",
|
||||
"PASSWORD": "Salasõna",
|
||||
"REMEMBER": "Remember",
|
||||
"REPLY_TO": "Vastuse saaja",
|
||||
"SAVE": "Salvesta",
|
||||
"SAVE_CHANGES": "Save changes?",
|
||||
|
|
|
|||
|
|
@ -22,6 +22,7 @@
|
|||
"NOT_SPAM": "Ez da spama",
|
||||
"USERNAME": "Erabiltzaile-izena",
|
||||
"PASSWORD": "Pasahitza",
|
||||
"REMEMBER": "Remember",
|
||||
"REPLY_TO": "Erantzun",
|
||||
"SAVE": "Gorde",
|
||||
"SAVE_CHANGES": "Aldaketak gorde?",
|
||||
|
|
|
|||
|
|
@ -22,6 +22,7 @@
|
|||
"NOT_SPAM": "هرزنامه نیست",
|
||||
"USERNAME": "نام کاربری",
|
||||
"PASSWORD": "گذرواژه",
|
||||
"REMEMBER": "Remember",
|
||||
"REPLY_TO": "پاسخ به",
|
||||
"SAVE": "ذخیره کن",
|
||||
"SAVE_CHANGES": "Save changes?",
|
||||
|
|
|
|||
|
|
@ -22,6 +22,7 @@
|
|||
"NOT_SPAM": "Ei roskapostia",
|
||||
"USERNAME": "Käyttäjätunnus",
|
||||
"PASSWORD": "Salasana",
|
||||
"REMEMBER": "Remember",
|
||||
"REPLY_TO": "Vastaa",
|
||||
"SAVE": "Tallenna",
|
||||
"SAVE_CHANGES": "Save changes?",
|
||||
|
|
|
|||
|
|
@ -22,6 +22,7 @@
|
|||
"NOT_SPAM": "Acceptable",
|
||||
"USERNAME": "Nom d'utilisateur",
|
||||
"PASSWORD": "Mot de passe",
|
||||
"REMEMBER": "Remember",
|
||||
"REPLY_TO": "Répondre à",
|
||||
"SAVE": "Enregistrer",
|
||||
"SAVE_CHANGES": "Save changes?",
|
||||
|
|
|
|||
|
|
@ -22,6 +22,7 @@
|
|||
"NOT_SPAM": "Nem szemét",
|
||||
"USERNAME": "Felhasználónév",
|
||||
"PASSWORD": "Jelszó",
|
||||
"REMEMBER": "Remember",
|
||||
"REPLY_TO": "Válaszcím",
|
||||
"SAVE": "Mentés",
|
||||
"SAVE_CHANGES": "Save changes?",
|
||||
|
|
|
|||
|
|
@ -22,6 +22,7 @@
|
|||
"NOT_SPAM": "Bukan Spam",
|
||||
"USERNAME": "Nama belakang",
|
||||
"PASSWORD": "Sandi",
|
||||
"REMEMBER": "Remember",
|
||||
"REPLY_TO": "Balas-Ke",
|
||||
"SAVE": "Simpan",
|
||||
"SAVE_CHANGES": "Save changes?",
|
||||
|
|
|
|||
|
|
@ -22,6 +22,7 @@
|
|||
"NOT_SPAM": "Ekki ruslpóstur",
|
||||
"USERNAME": "Notendanafn",
|
||||
"PASSWORD": "Lykilorð",
|
||||
"REMEMBER": "Remember",
|
||||
"REPLY_TO": "Svara-til",
|
||||
"SAVE": "Vista",
|
||||
"SAVE_CHANGES": "Save changes?",
|
||||
|
|
|
|||
|
|
@ -22,6 +22,7 @@
|
|||
"NOT_SPAM": "Segnala come non spam",
|
||||
"USERNAME": "Nome utente",
|
||||
"PASSWORD": "Parola d'ordine",
|
||||
"REMEMBER": "Remember",
|
||||
"REPLY_TO": "Rispondi a",
|
||||
"SAVE": "Salva",
|
||||
"SAVE_CHANGES": "Save changes?",
|
||||
|
|
|
|||
|
|
@ -22,6 +22,7 @@
|
|||
"NOT_SPAM": "迷惑メールを解除",
|
||||
"USERNAME": "ユーザー名",
|
||||
"PASSWORD": "パスワード",
|
||||
"REMEMBER": "Remember",
|
||||
"REPLY_TO": "Reply-To",
|
||||
"SAVE": "保存",
|
||||
"SAVE_CHANGES": "Save changes?",
|
||||
|
|
|
|||
|
|
@ -22,6 +22,7 @@
|
|||
"NOT_SPAM": "스팸 아님",
|
||||
"USERNAME": "사용자 이름",
|
||||
"PASSWORD": "비밀번호",
|
||||
"REMEMBER": "Remember",
|
||||
"REPLY_TO": "회신 주소",
|
||||
"SAVE": "저장",
|
||||
"SAVE_CHANGES": "Save changes?",
|
||||
|
|
|
|||
|
|
@ -22,6 +22,7 @@
|
|||
"NOT_SPAM": "Ne šlamštas",
|
||||
"USERNAME": "Vartotojo vardas",
|
||||
"PASSWORD": "Slaptažodis",
|
||||
"REMEMBER": "Remember",
|
||||
"REPLY_TO": "Kam atsakyti",
|
||||
"SAVE": "Išsaugoti",
|
||||
"SAVE_CHANGES": "Save changes?",
|
||||
|
|
|
|||
|
|
@ -22,6 +22,7 @@
|
|||
"NOT_SPAM": "Not Spam",
|
||||
"USERNAME": "Lietotājvārds",
|
||||
"PASSWORD": "Parole",
|
||||
"REMEMBER": "Remember",
|
||||
"REPLY_TO": "Reply-To",
|
||||
"SAVE": "Saglabāt",
|
||||
"SAVE_CHANGES": "Save changes?",
|
||||
|
|
|
|||
|
|
@ -22,6 +22,7 @@
|
|||
"NOT_SPAM": "Ikke søppelpost",
|
||||
"USERNAME": "Brukernavn",
|
||||
"PASSWORD": "Passord",
|
||||
"REMEMBER": "Remember",
|
||||
"REPLY_TO": "Svar til",
|
||||
"SAVE": "Lagre",
|
||||
"SAVE_CHANGES": "Save changes?",
|
||||
|
|
|
|||
|
|
@ -22,6 +22,7 @@
|
|||
"NOT_SPAM": "Geen ongewenste e-mail",
|
||||
"USERNAME": "Gebruikersnaam",
|
||||
"PASSWORD": "Wachtwoord",
|
||||
"REMEMBER": "Onthouden",
|
||||
"REPLY_TO": "Antwoordadres",
|
||||
"SAVE": "Opslaan",
|
||||
"SAVE_CHANGES": "Wijzigingen opslaan?",
|
||||
|
|
|
|||
|
|
@ -22,6 +22,7 @@
|
|||
"NOT_SPAM": "Oznacz jako pożądane",
|
||||
"USERNAME": "Nazwa użytkownika",
|
||||
"PASSWORD": "Hasło",
|
||||
"REMEMBER": "Remember",
|
||||
"REPLY_TO": "Odpisz do",
|
||||
"SAVE": "Zapisz",
|
||||
"SAVE_CHANGES": "Save changes?",
|
||||
|
|
|
|||
|
|
@ -22,6 +22,7 @@
|
|||
"NOT_SPAM": "Não é Lixo Eletrônico",
|
||||
"USERNAME": "Nome de usuário",
|
||||
"PASSWORD": "Senha",
|
||||
"REMEMBER": "Remember",
|
||||
"REPLY_TO": "Responder para",
|
||||
"SAVE": "Salvar",
|
||||
"SAVE_CHANGES": "Save changes?",
|
||||
|
|
|
|||
|
|
@ -22,6 +22,7 @@
|
|||
"NOT_SPAM": "Não é spam",
|
||||
"USERNAME": "Nome de usuário",
|
||||
"PASSWORD": "Palavra-passe",
|
||||
"REMEMBER": "Remember",
|
||||
"REPLY_TO": "Resp.-Para",
|
||||
"SAVE": "Guardar",
|
||||
"SAVE_CHANGES": "Save changes?",
|
||||
|
|
|
|||
|
|
@ -22,6 +22,7 @@
|
|||
"NOT_SPAM": "Não é spam",
|
||||
"USERNAME": "Nome de usuário",
|
||||
"PASSWORD": "Palavra-passe",
|
||||
"REMEMBER": "Remember",
|
||||
"REPLY_TO": "Resp.-Para",
|
||||
"SAVE": "Guardar",
|
||||
"SAVE_CHANGES": "Save changes?",
|
||||
|
|
|
|||
|
|
@ -22,6 +22,7 @@
|
|||
"NOT_SPAM": "Not SPAM",
|
||||
"USERNAME": "Nume de utilizator",
|
||||
"PASSWORD": "Parolă",
|
||||
"REMEMBER": "Remember",
|
||||
"REPLY_TO": "Reply-To",
|
||||
"SAVE": "Salvează",
|
||||
"SAVE_CHANGES": "Save changes?",
|
||||
|
|
|
|||
|
|
@ -22,6 +22,7 @@
|
|||
"NOT_SPAM": "Не спам",
|
||||
"USERNAME": "Имя пользователя",
|
||||
"PASSWORD": "Пароль",
|
||||
"REMEMBER": "Remember",
|
||||
"REPLY_TO": "Ответить-на",
|
||||
"SAVE": "Сохранить",
|
||||
"SAVE_CHANGES": "Save changes?",
|
||||
|
|
|
|||
|
|
@ -22,6 +22,7 @@
|
|||
"NOT_SPAM": "Nie je spam",
|
||||
"USERNAME": "Používateľské men",
|
||||
"PASSWORD": "Heslo",
|
||||
"REMEMBER": "Remember",
|
||||
"REPLY_TO": "Adresa pre odpoveď",
|
||||
"SAVE": "Uložiť",
|
||||
"SAVE_CHANGES": "Save changes?",
|
||||
|
|
|
|||
|
|
@ -22,6 +22,7 @@
|
|||
"NOT_SPAM": "Ni vsiljena pošta",
|
||||
"USERNAME": "Uporabniško ime",
|
||||
"PASSWORD": "Geslo",
|
||||
"REMEMBER": "Remember",
|
||||
"REPLY_TO": "Odgovor na",
|
||||
"SAVE": "Shrani",
|
||||
"SAVE_CHANGES": "Save changes?",
|
||||
|
|
|
|||
|
|
@ -22,6 +22,7 @@
|
|||
"NOT_SPAM": "Inte spam",
|
||||
"USERNAME": "Användarnamn",
|
||||
"PASSWORD": "Lösenord",
|
||||
"REMEMBER": "Remember",
|
||||
"REPLY_TO": "Svara till",
|
||||
"SAVE": "Spara",
|
||||
"SAVE_CHANGES": "Save changes?",
|
||||
|
|
|
|||
|
|
@ -22,6 +22,7 @@
|
|||
"NOT_SPAM": "Spam Değil",
|
||||
"USERNAME": "Kullanıcı adı",
|
||||
"PASSWORD": "Şifre",
|
||||
"REMEMBER": "Remember",
|
||||
"REPLY_TO": "Reply-To",
|
||||
"SAVE": "Kaydet",
|
||||
"SAVE_CHANGES": "Save changes?",
|
||||
|
|
|
|||
|
|
@ -22,6 +22,7 @@
|
|||
"NOT_SPAM": "Не спам",
|
||||
"USERNAME": "Ім'я користувача",
|
||||
"PASSWORD": "Пароль",
|
||||
"REMEMBER": "Remember",
|
||||
"REPLY_TO": "Reply-To",
|
||||
"SAVE": "Зберегти",
|
||||
"SAVE_CHANGES": "Save changes?",
|
||||
|
|
|
|||
|
|
@ -22,6 +22,7 @@
|
|||
"NOT_SPAM": "Không phải thư rác",
|
||||
"USERNAME": "Tên tài khoản",
|
||||
"PASSWORD": "Mật khẩu",
|
||||
"REMEMBER": "Remember",
|
||||
"REPLY_TO": "Nhận thư phản hồi về",
|
||||
"SAVE": "Lưu",
|
||||
"SAVE_CHANGES": "Save changes?",
|
||||
|
|
|
|||
|
|
@ -22,6 +22,7 @@
|
|||
"NOT_SPAM": "非垃圾邮件",
|
||||
"USERNAME": "用户名",
|
||||
"PASSWORD": "密码",
|
||||
"REMEMBER": "Remember",
|
||||
"REPLY_TO": "回复",
|
||||
"SAVE": "保存",
|
||||
"SAVE_CHANGES": "是否保存修改?",
|
||||
|
|
|
|||
|
|
@ -22,6 +22,7 @@
|
|||
"NOT_SPAM": "Not Spam",
|
||||
"USERNAME": "用户名",
|
||||
"PASSWORD": "密碼",
|
||||
"REMEMBER": "Remember",
|
||||
"REPLY_TO": "Reply-To",
|
||||
"SAVE": "保存",
|
||||
"SAVE_CHANGES": "Save changes?",
|
||||
|
|
|
|||
|
|
@ -9,6 +9,13 @@
|
|||
<label data-i18n="GLOBAL/PASSWORD"></label>
|
||||
<input type="password" data-bind="value: passphrase">
|
||||
</div>
|
||||
<div data-bind="visible: askRemeber, component: {
|
||||
name: 'Checkbox',
|
||||
params: {
|
||||
label: 'GLOBAL/REMEMBER',
|
||||
value: remember
|
||||
}
|
||||
}"></div>
|
||||
</form>
|
||||
</div>
|
||||
<footer>
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue