Enable RFC 8689

This commit is contained in:
the-djmaze 2023-01-30 15:21:17 +01:00
parent 1126712d11
commit e23e0138a9
48 changed files with 113 additions and 54 deletions

View file

@ -42,7 +42,7 @@ export class UserSettingsGeneral extends AbstractViewSettings {
this.threadsAllowed = AppUserStore.threadsAllowed;
['layout', 'messageReadDelay', 'messagesPerPage',
'editorDefaultType', 'requestReadReceipt', 'requestDsn', 'pgpSign', 'pgpEncrypt',
'editorDefaultType', 'requestReadReceipt', 'requestDsn', 'requireTLS', 'pgpSign', 'pgpEncrypt',
'viewHTML', 'showImages', 'removeColors', 'hideDeleted', 'listInlineAttachments', 'simpleAttachmentsList',
'useCheckboxesInList', 'listGrouped', 'useThreads', 'replySameFolder', 'msgDefaultAction', 'allowSpellcheck'
].forEach(name => this[name] = SettingsUserStore[name]);
@ -100,7 +100,7 @@ export class UserSettingsGeneral extends AbstractViewSettings {
this.addSettings(['ViewHTML', 'ShowImages', 'HideDeleted', 'ListInlineAttachments', 'simpleAttachmentsList',
'UseCheckboxesInList', 'listGrouped', 'ReplySameFolder',
'requestReadReceipt', 'requestDsn', 'pgpSign', 'pgpEncrypt', 'allowSpellcheck',
'requestReadReceipt', 'requestDsn', 'requireTLS', 'pgpSign', 'pgpEncrypt', 'allowSpellcheck',
'DesktopNotifications', 'SoundNotification']);
const fReloadLanguageHelper = (saveSettingsStep) => () => {

View file

@ -33,6 +33,7 @@ export const SettingsUserStore = new class {
requestReadReceipt: 0,
requestDsn: 0,
requireTLS: 0,
pgpSign: 0,
pgpEncrypt: 0,
allowSpellcheck: 0,
@ -97,6 +98,7 @@ export const SettingsUserStore = new class {
self.requestReadReceipt(SettingsGet('requestReadReceipt'));
self.requestDsn(SettingsGet('requestDsn'));
self.requireTLS(SettingsGet('requireTLS'));
self.pgpSign(SettingsGet('pgpSign'));
self.pgpEncrypt(SettingsGet('pgpEncrypt'));
self.allowSpellcheck(SettingsGet('allowSpellcheck'));

View file

@ -231,6 +231,7 @@ export class ComposePopupView extends AbstractViewPopup {
requestDsn: false,
requestReadReceipt: false,
requireTLS: false,
markAsImportant: false,
sendError: false,
@ -1270,6 +1271,7 @@ export class ComposePopupView extends AbstractViewPopup {
this.requestDsn(SettingsUserStore.requestDsn());
this.requestReadReceipt(SettingsUserStore.requestReadReceipt());
this.requireTLS(SettingsUserStore.requireTLS());
this.markAsImportant(false);
this.bodyArea();
@ -1422,6 +1424,7 @@ export class ComposePopupView extends AbstractViewPopup {
attachments: attachments,
// Only used at send, not at save:
dsn: this.requestDsn() ? 1 : 0,
requireTLS: this.requireTLS() ? 1 : 0,
readReceiptRequest: this.requestReadReceipt() ? 1 : 0
},
recipients = draft ? [identity.email()] : this.allRecipients(),

View file

@ -200,11 +200,6 @@ class Message extends Part
return $this;
}
public function SetReadConfirmation(string $sEmail) : self
{
return $this->SetReadReceipt($sEmail);
}
public function SetPriority(int $iValue) : self
{
$sResult = '';

View file

@ -191,14 +191,14 @@ class SmtpClient extends \MailSo\Net\NetClient
* @throws \MailSo\Net\Exceptions\*
* @throws \MailSo\Smtp\Exceptions\*
*/
public function MailFrom(string $sFrom, string $sSizeIfSupported = '', bool $bDsn = false) : self
public function MailFrom(string $sFrom, int $iSizeIfSupported = 0, bool $bDsn = false, bool $bRequireTLS = false) : self
{
$sFrom = \MailSo\Base\Utils::IdnToAscii(\MailSo\Base\Utils::Trim($sFrom), true);
$sCmd = "FROM:<{$sFrom}>";
if (\strlen($sSizeIfSupported) && \is_numeric($sSizeIfSupported) && $this->hasCapability('SIZE')) {
$sCmd .= ' SIZE='.$sSizeIfSupported;
if (0 < $iSizeIfSupported && $this->hasCapability('SIZE')) {
$sCmd .= ' SIZE='.$iSizeIfSupported;
}
if ($bDsn && $this->hasCapability('DSN')) {
@ -206,8 +206,8 @@ class SmtpClient extends \MailSo\Net\NetClient
}
// RFC 8689
if ($this->hasCapability('REQUIRETLS')) {
// $sCmd .= ' REQUIRETLS';
if ($bRequireTLS && $this->hasCapability('REQUIRETLS')) {
$sCmd .= ' REQUIRETLS';
}
$this->sendRequestWithCheck('MAIL', 250, $sCmd);

View file

@ -791,6 +791,7 @@ class Actions
$aResult['EditorDefaultType'] = \str_replace('Forced', '', $oSettings->GetConf('EditorDefaultType', $aResult['EditorDefaultType']));
$aResult['requestReadReceipt'] = (bool) $oSettings->GetConf('requestReadReceipt', false);
$aResult['requestDsn'] = (bool) $oSettings->GetConf('requestDsn', false);
$aResult['requireTLS'] = (bool) $oSettings->GetConf('requireTLS', false);
$aResult['pgpSign'] = (bool) $oSettings->GetConf('pgpSign', false);
$aResult['pgpEncrypt'] = (bool) $oSettings->GetConf('pgpEncrypt', false);
$aResult['allowSpellcheck'] = (bool) $oSettings->GetConf('allowSpellcheck', false);

View file

@ -174,7 +174,8 @@ trait Messages
if (false !== $iMessageStreamSize) {
$bDsn = !empty($this->GetActionParam('dsn', 0));
$this->smtpSendMessage($oAccount, $oMessage, $rMessageStream, $iMessageStreamSize, $bDsn, true);
$bRequireTLS = !empty($this->GetActionParam('requireTLS', 0));
$this->smtpSendMessage($oAccount, $oMessage, $rMessageStream, $iMessageStreamSize, true, $bDsn, $bRequireTLS);
if (\is_array($aDraftInfo) && 3 === \count($aDraftInfo)) {
$sDraftInfoType = $aDraftInfo[0];
@ -321,7 +322,7 @@ trait Messages
$oMessage->ToStream(true), array($rMessageStream), 8192, true, true, true);
if (false !== $iMessageStreamSize) {
$this->smtpSendMessage($oAccount, $oMessage, $rMessageStream, $iMessageStreamSize, false, false);
$this->smtpSendMessage($oAccount, $oMessage, $rMessageStream, $iMessageStreamSize, false);
if (\is_resource($rMessageStream)) {
\fclose($rMessageStream);
@ -748,7 +749,8 @@ trait Messages
* @throws \MailSo\Net\Exceptions\ConnectionException
*/
private function smtpSendMessage(Account $oAccount, \MailSo\Mime\Message $oMessage,
/*resource*/ &$rMessageStream, int &$iMessageStreamSize, bool $bDsn = false, bool $bAddHiddenRcpt = true)
/*resource*/ &$rMessageStream, int &$iMessageStreamSize, bool $bAddHiddenRcpt = true,
bool $bDsn = false, bool $bRequireTLS = false)
{
$oRcpt = $oMessage->GetRcpt();
if (!$oRcpt || !$oRcpt->count()) {
@ -824,7 +826,7 @@ trait Messages
}
if (!empty($sFrom)) {
$oSmtpClient->MailFrom($sFrom, '', $bDsn);
$oSmtpClient->MailFrom($sFrom, 0, $bDsn, $bRequireTLS);
}
foreach ($oRcpt as /* @var $oEmail \MailSo\Mime\Email */ $oEmail) {
@ -996,6 +998,10 @@ trait Messages
$oMessage->SetReadReceipt($oFrom->GetEmail());
}
if (empty($this->GetActionParam('requireTLS', 0))) {
$oMessage->SetCustomHeader('TLS-Required', 'No');
}
if (!empty($this->GetActionParam('markAsImportant', 0))) {
$oMessage->SetPriority(\MailSo\Mime\Enumerations\MessagePriority::HIGH);
}

View file

@ -172,6 +172,7 @@ trait User
$this->setSettingsFromParams($oSettings, 'EditorDefaultType', 'string');
$this->setSettingsFromParams($oSettings, 'requestReadReceipt', 'bool');
$this->setSettingsFromParams($oSettings, 'requestDsn', 'bool');
$this->setSettingsFromParams($oSettings, 'requireTLS', 'bool');
$this->setSettingsFromParams($oSettings, 'pgpSign', 'bool');
$this->setSettingsFromParams($oSettings, 'pgpEncrypt', 'bool');
$this->setSettingsFromParams($oSettings, 'allowSpellcheck', 'bool');

View file

@ -228,7 +228,8 @@
"ALLOW_SPELLCHECK": "Enable browser spelling checker",
"BUTTON_REQUEST_READ_RECEIPT": "اطلب اعلاماً بالقراءة",
"BUTTON_MARK_AS_IMPORTANT": "تحديده كـ هام",
"BUTTON_REQUEST_DSN": "اطلب اعلاماً بايصال البريد"
"BUTTON_REQUEST_DSN": "اطلب اعلاماً بايصال البريد",
"BUTTON_REQUIRE_TLS": "Require secure delivery"
},
"POPUPS_ASK": {
"DESC_WANT_CLOSE_THIS_WINDOW": "هل أنت متأكد من رغبتك باغلاق هذه النافذة؟",

View file

@ -228,7 +228,8 @@
"ALLOW_SPELLCHECK": "Enable browser spelling checker",
"BUTTON_REQUEST_READ_RECEIPT": "Поискайте разписка за прочитане на съобщението",
"BUTTON_MARK_AS_IMPORTANT": "Отбележи като важно",
"BUTTON_REQUEST_DSN": "Уведомяване при доставка"
"BUTTON_REQUEST_DSN": "Уведомяване при доставка",
"BUTTON_REQUIRE_TLS": "Require secure delivery"
},
"POPUPS_ASK": {
"DESC_WANT_CLOSE_THIS_WINDOW": "Сигурни ли сте, че желаете да затворите този прозорец?",

View file

@ -228,7 +228,8 @@
"ALLOW_SPELLCHECK": "Enable browser spelling checker",
"BUTTON_REQUEST_READ_RECEIPT": "Vyžádat si potvrzení o přečtení",
"BUTTON_MARK_AS_IMPORTANT": "Označit jako důležité",
"BUTTON_REQUEST_DSN": "Vyžádat si potvrzení o přijetí"
"BUTTON_REQUEST_DSN": "Vyžádat si potvrzení o přijetí",
"BUTTON_REQUIRE_TLS": "Require secure delivery"
},
"POPUPS_ASK": {
"DESC_WANT_CLOSE_THIS_WINDOW": "Opravdu chcete zavřít toto okno?",

View file

@ -228,7 +228,8 @@
"ALLOW_SPELLCHECK": "Enable browser spelling checker",
"BUTTON_REQUEST_READ_RECEIPT": "Bed om kvittering for læsning",
"BUTTON_MARK_AS_IMPORTANT": "Markér som vigtig",
"BUTTON_REQUEST_DSN": "Bed om kvittering for modtagelse"
"BUTTON_REQUEST_DSN": "Bed om kvittering for modtagelse",
"BUTTON_REQUIRE_TLS": "Require secure delivery"
},
"POPUPS_ASK": {
"DESC_WANT_CLOSE_THIS_WINDOW": "Vil du lukke vinduet?",

View file

@ -228,7 +228,8 @@
"ALLOW_SPELLCHECK": "Rechtschreibprüfung durch den Browser zulassen",
"BUTTON_REQUEST_READ_RECEIPT": "Empfangsbestätigung anfordern",
"BUTTON_MARK_AS_IMPORTANT": "Als Wichtig markieren",
"BUTTON_REQUEST_DSN": "Übermittlungsstatus anfordern"
"BUTTON_REQUEST_DSN": "Übermittlungsstatus anfordern",
"BUTTON_REQUIRE_TLS": "Require secure delivery"
},
"POPUPS_ASK": {
"DESC_WANT_CLOSE_THIS_WINDOW": "Sind Sie sicher, dass Sie dieses Fenster schließen möchten?",

View file

@ -228,7 +228,8 @@
"ALLOW_SPELLCHECK": "Enable browser spelling checker",
"BUTTON_REQUEST_READ_RECEIPT": "Ζητήστε αποδεικτικό ανάγνωσης",
"BUTTON_MARK_AS_IMPORTANT": "Σημειώστε το σαν σημαντικό",
"BUTTON_REQUEST_DSN": "Ζητήστε αποδεικτικό παράδοσης"
"BUTTON_REQUEST_DSN": "Ζητήστε αποδεικτικό παράδοσης",
"BUTTON_REQUIRE_TLS": "Require secure delivery"
},
"POPUPS_ASK": {
"DESC_WANT_CLOSE_THIS_WINDOW": "Είστε σίγουροι πως θέλετε να κλείσετε αυτό το παράθυρο;",

View file

@ -228,7 +228,8 @@
"ALLOW_SPELLCHECK": "Enable browser spelling checker",
"BUTTON_REQUEST_READ_RECEIPT": "Request a read receipt",
"BUTTON_MARK_AS_IMPORTANT": "Mark as important",
"BUTTON_REQUEST_DSN": "Request a delivery receipt"
"BUTTON_REQUEST_DSN": "Request a delivery receipt",
"BUTTON_REQUIRE_TLS": "Require secure delivery"
},
"POPUPS_ASK": {
"DESC_WANT_CLOSE_THIS_WINDOW": "Are you sure you want to close this window?",

View file

@ -228,7 +228,8 @@
"ALLOW_SPELLCHECK": "Enable browser spelling checker",
"BUTTON_REQUEST_READ_RECEIPT": "Request a read receipt",
"BUTTON_MARK_AS_IMPORTANT": "Mark as important",
"BUTTON_REQUEST_DSN": "Request a delivery receipt"
"BUTTON_REQUEST_DSN": "Request a delivery receipt",
"BUTTON_REQUIRE_TLS": "Require secure delivery"
},
"POPUPS_ASK": {
"DESC_WANT_CLOSE_THIS_WINDOW": "Are you sure you want to close this window?",

View file

@ -228,7 +228,8 @@
"ALLOW_SPELLCHECK": "Enable browser spelling checker",
"BUTTON_REQUEST_READ_RECEIPT": "Solicitar confirmación de lectura",
"BUTTON_MARK_AS_IMPORTANT": "Marcar como importante",
"BUTTON_REQUEST_DSN": "Solicitar una confirmación de entrega"
"BUTTON_REQUEST_DSN": "Solicitar una confirmación de entrega",
"BUTTON_REQUIRE_TLS": "Require secure delivery"
},
"POPUPS_ASK": {
"DESC_WANT_CLOSE_THIS_WINDOW": "¿Está seguro de que desea cerrar esta ventana?",

View file

@ -228,7 +228,8 @@
"ALLOW_SPELLCHECK": "Enable browser spelling checker",
"BUTTON_REQUEST_READ_RECEIPT": "Palu lugemise kohta kinnitust",
"BUTTON_MARK_AS_IMPORTANT": "Tähista olulisena",
"BUTTON_REQUEST_DSN": "Palu kättesaamise kohta kinnitust"
"BUTTON_REQUEST_DSN": "Palu kättesaamise kohta kinnitust",
"BUTTON_REQUIRE_TLS": "Require secure delivery"
},
"POPUPS_ASK": {
"DESC_WANT_CLOSE_THIS_WINDOW": "Kas oled kindel, et soovid akna sulgeda?",

View file

@ -228,7 +228,8 @@
"ALLOW_SPELLCHECK": "Gaitu nabigatzaileko hizkuntza-zuzentzailea",
"BUTTON_REQUEST_READ_RECEIPT": "Eskatu irakurketa-agiria",
"BUTTON_MARK_AS_IMPORTANT": "MArkatu garrantzitsu bezala",
"BUTTON_REQUEST_DSN": "Eskatu jasotze-agiria"
"BUTTON_REQUEST_DSN": "Eskatu jasotze-agiria",
"BUTTON_REQUIRE_TLS": "Require secure delivery"
},
"POPUPS_ASK": {
"DESC_WANT_CLOSE_THIS_WINDOW": "Ziur zaude leiho hau itxi nahi duzula?",

View file

@ -228,7 +228,8 @@
"ALLOW_SPELLCHECK": "Enable browser spelling checker",
"BUTTON_REQUEST_READ_RECEIPT": "درخواست دریافت رسید خواندن",
"BUTTON_MARK_AS_IMPORTANT": "علامت زدن به عنوان مهم",
"BUTTON_REQUEST_DSN": "درخواست دریافت رسید تحویل درمقصد"
"BUTTON_REQUEST_DSN": "درخواست دریافت رسید تحویل درمقصد",
"BUTTON_REQUIRE_TLS": "Require secure delivery"
},
"POPUPS_ASK": {
"DESC_WANT_CLOSE_THIS_WINDOW": "آیا از بستن این پنجره مطمئن هستید؟",

View file

@ -228,7 +228,8 @@
"ALLOW_SPELLCHECK": "Enable browser spelling checker",
"BUTTON_REQUEST_READ_RECEIPT": "Pyydä kuittaus",
"BUTTON_MARK_AS_IMPORTANT": "Merkitse tärkeäksi",
"BUTTON_REQUEST_DSN": "Pyydä toimituskuittaus"
"BUTTON_REQUEST_DSN": "Pyydä toimituskuittaus",
"BUTTON_REQUIRE_TLS": "Require secure delivery"
},
"POPUPS_ASK": {
"DESC_WANT_CLOSE_THIS_WINDOW": "Haluatko varmasti sulkea tämän ikkunan?",

View file

@ -228,7 +228,8 @@
"ALLOW_SPELLCHECK": "Enable browser spelling checker",
"BUTTON_REQUEST_READ_RECEIPT": "Demander une confirmation de lecture",
"BUTTON_MARK_AS_IMPORTANT": "Marquer comme important",
"BUTTON_REQUEST_DSN": "Demander un accusé de réception"
"BUTTON_REQUEST_DSN": "Demander un accusé de réception",
"BUTTON_REQUIRE_TLS": "Require secure delivery"
},
"POPUPS_ASK": {
"DESC_WANT_CLOSE_THIS_WINDOW": "Êtes-vous sûr de vouloir fermer cette fenêtre ?",

View file

@ -228,7 +228,8 @@
"ALLOW_SPELLCHECK": "Enable browser spelling checker",
"BUTTON_REQUEST_READ_RECEIPT": "Olvasási visszaigazolás kérése",
"BUTTON_MARK_AS_IMPORTANT": "Megjelölés fontosként",
"BUTTON_REQUEST_DSN": "Továbbítási visszaigazolás kérés"
"BUTTON_REQUEST_DSN": "Továbbítási visszaigazolás kérés",
"BUTTON_REQUIRE_TLS": "Require secure delivery"
},
"POPUPS_ASK": {
"DESC_WANT_CLOSE_THIS_WINDOW": "Biztos, hogy be akarod zárni ezt az ablakot?",

View file

@ -228,7 +228,8 @@
"ALLOW_SPELLCHECK": "Enable browser spelling checker",
"BUTTON_REQUEST_READ_RECEIPT": "Minta pemberitahuan telah dibaca",
"BUTTON_MARK_AS_IMPORTANT": "Tandai sebagai pesan penting",
"BUTTON_REQUEST_DSN": "Minta pemberitahuan berhasil kirim"
"BUTTON_REQUEST_DSN": "Minta pemberitahuan berhasil kirim",
"BUTTON_REQUIRE_TLS": "Require secure delivery"
},
"POPUPS_ASK": {
"DESC_WANT_CLOSE_THIS_WINDOW": "Anda yakin untuk menutup jendela ini?",

View file

@ -228,7 +228,8 @@
"ALLOW_SPELLCHECK": "Enable browser spelling checker",
"BUTTON_REQUEST_READ_RECEIPT": "Biðja um staðfestingu á lestri",
"BUTTON_MARK_AS_IMPORTANT": "Merkja sem mikilvægt",
"BUTTON_REQUEST_DSN": "Biðja um staðfestingu á afhendingu"
"BUTTON_REQUEST_DSN": "Biðja um staðfestingu á afhendingu",
"BUTTON_REQUIRE_TLS": "Require secure delivery"
},
"POPUPS_ASK": {
"DESC_WANT_CLOSE_THIS_WINDOW": "Ertu viss um að þú viljir loka þessum glugga?",

View file

@ -228,7 +228,8 @@
"ALLOW_SPELLCHECK": "Abilita il controllo ortografico del browser",
"BUTTON_REQUEST_READ_RECEIPT": "Richiedi conferma di lettura",
"BUTTON_MARK_AS_IMPORTANT": "Marca come importante",
"BUTTON_REQUEST_DSN": "Richiedi conferma del ricevimento"
"BUTTON_REQUEST_DSN": "Richiedi conferma del ricevimento",
"BUTTON_REQUIRE_TLS": "Require secure delivery"
},
"POPUPS_ASK": {
"DESC_WANT_CLOSE_THIS_WINDOW": "Sei sicuro di voler chiudere questa finestra?",

View file

@ -228,7 +228,8 @@
"ALLOW_SPELLCHECK": "Enable browser spelling checker",
"BUTTON_REQUEST_READ_RECEIPT": "開封確認を要求する",
"BUTTON_MARK_AS_IMPORTANT": "重要フラグをつける",
"BUTTON_REQUEST_DSN": "配信確認を要求する"
"BUTTON_REQUEST_DSN": "配信確認を要求する",
"BUTTON_REQUIRE_TLS": "Require secure delivery"
},
"POPUPS_ASK": {
"DESC_WANT_CLOSE_THIS_WINDOW": "このウインドウを閉じていいですか?",

View file

@ -228,7 +228,8 @@
"ALLOW_SPELLCHECK": "Enable browser spelling checker",
"BUTTON_REQUEST_READ_RECEIPT": "수신 확인 요청",
"BUTTON_MARK_AS_IMPORTANT": "중요 표시",
"BUTTON_REQUEST_DSN": "수신 확인 요청"
"BUTTON_REQUEST_DSN": "수신 확인 요청",
"BUTTON_REQUIRE_TLS": "Require secure delivery"
},
"POPUPS_ASK": {
"DESC_WANT_CLOSE_THIS_WINDOW": "정말로 이 페이지를 닫으시겠습니까 ?",

View file

@ -228,7 +228,8 @@
"ALLOW_SPELLCHECK": "Enable browser spelling checker",
"BUTTON_REQUEST_READ_RECEIPT": "Prašyti pranešti kada bus perskaitytas",
"BUTTON_MARK_AS_IMPORTANT": "Žymėti svarbiu",
"BUTTON_REQUEST_DSN": "Prašyti laiško gavimo pažymos"
"BUTTON_REQUEST_DSN": "Prašyti laiško gavimo pažymos",
"BUTTON_REQUIRE_TLS": "Require secure delivery"
},
"POPUPS_ASK": {
"DESC_WANT_CLOSE_THIS_WINDOW": "Ar tikrai norite uždaryti šį langą??",

View file

@ -228,7 +228,8 @@
"ALLOW_SPELLCHECK": "Enable browser spelling checker",
"BUTTON_REQUEST_READ_RECEIPT": "Request a read receipt",
"BUTTON_MARK_AS_IMPORTANT": "Mark as important",
"BUTTON_REQUEST_DSN": "Request a delivery receipt"
"BUTTON_REQUEST_DSN": "Request a delivery receipt",
"BUTTON_REQUIRE_TLS": "Require secure delivery"
},
"POPUPS_ASK": {
"DESC_WANT_CLOSE_THIS_WINDOW": "Are you sure you want to close this window?",

View file

@ -228,7 +228,8 @@
"ALLOW_SPELLCHECK": "Enable browser spelling checker",
"BUTTON_REQUEST_READ_RECEIPT": "Be om en bekreftelse fra mottaker på at meldinga er lest",
"BUTTON_MARK_AS_IMPORTANT": "Marker som viktig",
"BUTTON_REQUEST_DSN": "Be om leveringsbekreftelse"
"BUTTON_REQUEST_DSN": "Be om leveringsbekreftelse",
"BUTTON_REQUIRE_TLS": "Require secure delivery"
},
"POPUPS_ASK": {
"DESC_WANT_CLOSE_THIS_WINDOW": "Er du sikker på at du vil lukke dette vinduet?",

View file

@ -228,7 +228,8 @@
"ALLOW_SPELLCHECK": "De browser spellingcontrole toestaan",
"BUTTON_REQUEST_READ_RECEIPT": "Leesbevestiging vragen",
"BUTTON_MARK_AS_IMPORTANT": "Markeer als belangrijk",
"BUTTON_REQUEST_DSN": "Ontvangstbevestiging vragen"
"BUTTON_REQUEST_DSN": "Ontvangstbevestiging vragen",
"BUTTON_REQUIRE_TLS": "Require secure delivery"
},
"POPUPS_ASK": {
"DESC_WANT_CLOSE_THIS_WINDOW": "Weet u zeker dat u dit venster wilt sluiten?",

View file

@ -228,7 +228,8 @@
"ALLOW_SPELLCHECK": "Enable browser spelling checker",
"BUTTON_REQUEST_READ_RECEIPT": "Żądaj potwierdzenia przeczytania wiadomości",
"BUTTON_MARK_AS_IMPORTANT": "Oznacz jako ważną",
"BUTTON_REQUEST_DSN": "Żądaj potwierdzenia dostarczenia wiadomości"
"BUTTON_REQUEST_DSN": "Żądaj potwierdzenia dostarczenia wiadomości",
"BUTTON_REQUIRE_TLS": "Require secure delivery"
},
"POPUPS_ASK": {
"DESC_WANT_CLOSE_THIS_WINDOW": "Na pewno chcesz zamknąć to okno?",

View file

@ -228,7 +228,8 @@
"ALLOW_SPELLCHECK": "Enable browser spelling checker",
"BUTTON_REQUEST_READ_RECEIPT": "Pedir recibo de leitura",
"BUTTON_MARK_AS_IMPORTANT": "Marcar como importante",
"BUTTON_REQUEST_DSN": "Pedir recibo de entrega"
"BUTTON_REQUEST_DSN": "Pedir recibo de entrega",
"BUTTON_REQUIRE_TLS": "Require secure delivery"
},
"POPUPS_ASK": {
"DESC_WANT_CLOSE_THIS_WINDOW": "Você tem certeza que deseja fechar esta janela?",

View file

@ -228,7 +228,8 @@
"ALLOW_SPELLCHECK": "Enable browser spelling checker",
"BUTTON_REQUEST_READ_RECEIPT": "Pedir um recibo de leitura",
"BUTTON_MARK_AS_IMPORTANT": "Marcar como importante",
"BUTTON_REQUEST_DSN": "Pedir um recibo de entrega"
"BUTTON_REQUEST_DSN": "Pedir um recibo de entrega",
"BUTTON_REQUIRE_TLS": "Require secure delivery"
},
"POPUPS_ASK": {
"DESC_WANT_CLOSE_THIS_WINDOW": "Tem a certeza de que quer fechar esta janela?",

View file

@ -228,7 +228,8 @@
"ALLOW_SPELLCHECK": "Enable browser spelling checker",
"BUTTON_REQUEST_READ_RECEIPT": "Pedir um recibo de leitura",
"BUTTON_MARK_AS_IMPORTANT": "Marcar como importante",
"BUTTON_REQUEST_DSN": "Pedir um recibo de entrega"
"BUTTON_REQUEST_DSN": "Pedir um recibo de entrega",
"BUTTON_REQUIRE_TLS": "Require secure delivery"
},
"POPUPS_ASK": {
"DESC_WANT_CLOSE_THIS_WINDOW": "Tem a certeza de que quer fechar esta janela?",

View file

@ -228,7 +228,8 @@
"ALLOW_SPELLCHECK": "Enable browser spelling checker",
"BUTTON_REQUEST_READ_RECEIPT": "Cere confirmare de citire",
"BUTTON_MARK_AS_IMPORTANT": "Mark as important",
"BUTTON_REQUEST_DSN": "Request a delivery receipt"
"BUTTON_REQUEST_DSN": "Request a delivery receipt",
"BUTTON_REQUIRE_TLS": "Require secure delivery"
},
"POPUPS_ASK": {
"DESC_WANT_CLOSE_THIS_WINDOW": "Sigur doriți să închideți această fereastră?",

View file

@ -228,7 +228,8 @@
"ALLOW_SPELLCHECK": "Enable browser spelling checker",
"BUTTON_REQUEST_READ_RECEIPT": "Запрос о прочтении письма",
"BUTTON_MARK_AS_IMPORTANT": "Отметить как важное",
"BUTTON_REQUEST_DSN": "Запросить уведомление о доставке"
"BUTTON_REQUEST_DSN": "Запросить уведомление о доставке",
"BUTTON_REQUIRE_TLS": "Require secure delivery"
},
"POPUPS_ASK": {
"DESC_WANT_CLOSE_THIS_WINDOW": "Вы уверены, что хотите закрыть это окно?",

View file

@ -228,7 +228,8 @@
"ALLOW_SPELLCHECK": "Enable browser spelling checker",
"BUTTON_REQUEST_READ_RECEIPT": "Vyžiadať potvrdenie o prečítaní",
"BUTTON_MARK_AS_IMPORTANT": "Označiť ako dôležité",
"BUTTON_REQUEST_DSN": "Vyžiadať potvrdenie o doručení"
"BUTTON_REQUEST_DSN": "Vyžiadať potvrdenie o doručení",
"BUTTON_REQUIRE_TLS": "Require secure delivery"
},
"POPUPS_ASK": {
"DESC_WANT_CLOSE_THIS_WINDOW": "Ste si istý že chcete zatvoriť toto okno?",

View file

@ -228,7 +228,8 @@
"ALLOW_SPELLCHECK": "Enable browser spelling checker",
"BUTTON_REQUEST_READ_RECEIPT": "Zahtevaj potrdilo o branju",
"BUTTON_MARK_AS_IMPORTANT": "Označi kot pomembno",
"BUTTON_REQUEST_DSN": "Zahtevaj potrdilo o dostavi"
"BUTTON_REQUEST_DSN": "Zahtevaj potrdilo o dostavi",
"BUTTON_REQUIRE_TLS": "Require secure delivery"
},
"POPUPS_ASK": {
"DESC_WANT_CLOSE_THIS_WINDOW": "Želite zapreti to okno?",

View file

@ -228,7 +228,8 @@
"ALLOW_SPELLCHECK": "Enable browser spelling checker",
"BUTTON_REQUEST_READ_RECEIPT": "Begär mottagningskvitto",
"BUTTON_MARK_AS_IMPORTANT": "Markera som viktigt",
"BUTTON_REQUEST_DSN": "Begär ett leveranskvitto"
"BUTTON_REQUEST_DSN": "Begär ett leveranskvitto",
"BUTTON_REQUIRE_TLS": "Require secure delivery"
},
"POPUPS_ASK": {
"DESC_WANT_CLOSE_THIS_WINDOW": "Vill du stänga detta fönster?",

View file

@ -228,7 +228,8 @@
"ALLOW_SPELLCHECK": "Enable browser spelling checker",
"BUTTON_REQUEST_READ_RECEIPT": "Okundu bilgisi iste",
"BUTTON_MARK_AS_IMPORTANT": "Mark as important",
"BUTTON_REQUEST_DSN": "Request a delivery receipt"
"BUTTON_REQUEST_DSN": "Request a delivery receipt",
"BUTTON_REQUIRE_TLS": "Require secure delivery"
},
"POPUPS_ASK": {
"DESC_WANT_CLOSE_THIS_WINDOW": "Bu pencereyi kapatmak istediğinizden emin misiniz?",

View file

@ -228,7 +228,8 @@
"ALLOW_SPELLCHECK": "Enable browser spelling checker",
"BUTTON_REQUEST_READ_RECEIPT": "Запит про прочитання листа",
"BUTTON_MARK_AS_IMPORTANT": "Mark as important",
"BUTTON_REQUEST_DSN": "Request a delivery receipt"
"BUTTON_REQUEST_DSN": "Request a delivery receipt",
"BUTTON_REQUIRE_TLS": "Require secure delivery"
},
"POPUPS_ASK": {
"DESC_WANT_CLOSE_THIS_WINDOW": "Ви впевнені, що хочете закрити це вікно?",

View file

@ -228,7 +228,8 @@
"ALLOW_SPELLCHECK": "Enable browser spelling checker",
"BUTTON_REQUEST_READ_RECEIPT": "Yêu cầu thông báo khi người nhận đã đọc thư",
"BUTTON_MARK_AS_IMPORTANT": "Đánh dấu thư quan trọng",
"BUTTON_REQUEST_DSN": "Yêu cầu thông báo thư đã gửi thành công"
"BUTTON_REQUEST_DSN": "Yêu cầu thông báo thư đã gửi thành công",
"BUTTON_REQUIRE_TLS": "Require secure delivery"
},
"POPUPS_ASK": {
"DESC_WANT_CLOSE_THIS_WINDOW": "Bạn có chắc muốn đóng bảng này chứ?",

View file

@ -228,7 +228,8 @@
"ALLOW_SPELLCHECK": "启用浏览器拼写检查器",
"BUTTON_REQUEST_READ_RECEIPT": "要求已读回执",
"BUTTON_MARK_AS_IMPORTANT": "标记为“重要”",
"BUTTON_REQUEST_DSN": "要求送达回执"
"BUTTON_REQUEST_DSN": "要求送达回执",
"BUTTON_REQUIRE_TLS": "Require secure delivery"
},
"POPUPS_ASK": {
"DESC_WANT_CLOSE_THIS_WINDOW": "您确定要关闭此窗口吗?",

View file

@ -228,7 +228,8 @@
"ALLOW_SPELLCHECK": "Enable browser spelling checker",
"BUTTON_REQUEST_READ_RECEIPT": "Request a read receipt",
"BUTTON_MARK_AS_IMPORTANT": "Mark as important",
"BUTTON_REQUEST_DSN": "Request a delivery receipt"
"BUTTON_REQUEST_DSN": "Request a delivery receipt",
"BUTTON_REQUIRE_TLS": "Require secure delivery"
},
"POPUPS_ASK": {
"DESC_WANT_CLOSE_THIS_WINDOW": "你確定要關閉此窗口嗎?",

View file

@ -48,6 +48,12 @@
<span data-i18n="COMPOSE/BUTTON_REQUEST_DSN"></span>
</a>
</li>
<li data-bind="click: function () { requireTLS(!requireTLS()); }">
<a>
<i class="fontastic" data-bind="text: requireTLS() ? '☑' : '☐'"></i>
<span data-i18n="COMPOSE/BUTTON_REQUIRE_TLS"></span>
</a>
</li>
<li data-bind="click: function () { markAsImportant(!markAsImportant()); }">
<a>
<i class="fontastic" data-bind="text: markAsImportant() ? '☑' : '☐'"></i>

View file

@ -114,6 +114,13 @@
value: requestDsn
}
}"></div>
<div data-bind="component: {
name: 'Checkbox',
params: {
label: 'COMPOSE/BUTTON_REQUIRE_TLS',
value: requireTLS
}
}"></div>
<div data-bind="component: {
name: 'Checkbox',
params: {