Merge pull request #2248 from OpenSignLabs/staging

v2.41.3
This commit is contained in:
Raktima
2026-08-21 17:58:57 +05:30
committed by GitHub
10 changed files with 24 additions and 5 deletions
@@ -800,6 +800,7 @@
"quota-mail-info": "Um die Servicequalität aufrechtzuerhalten und Spam zu verhindern, erlaubt OpenSign bis zu 15 E-Mails pro Monat im kostenlosen Plan. Upgraden Sie jetzt für unbegrenzten E-Mail-Versand.",
"quota-mail-reset": "Ihre Credits für Signaturanfragen per E-Mail werden zurückgesetzt am",
"quota-mail": "Sie haben Ihr monatliches Limit von 15 Signaturanfragen per E-Mail erreicht. Jetzt upgraden, um weiter E-Mails direkt zu senden.",
"quota-mail-limit-reached": "Sie haben Ihr monatliches Limit von 15 E-Mail-Credits erreicht. Bitte upgraden Sie Ihren Tarif, um weiterhin E-Mails direkt zu senden.\nIhre E-Mail-Credits werden am {{resetDate}} zurückgesetzt.",
"quota-mail-tip": "Tipp: Sie können weiterhin <1>unbegrenzt Dokumente</1> signieren, indem Sie den Signaturanfragelink manuell teilen.",
"quota-mail-head": "Kontingent erreicht",
"unauthorized-modal": "Sie haben keine Berechtigung, diese Aktion auszuführen. Bitte kontaktieren Sie {{adminEmail}}.",
@@ -800,6 +800,7 @@
"quota-mail-info": "To maintain service quality and prevent spam, OpenSign allows up to 15 emails per month on the free plan. Upgrade now for unlimited email sending.",
"quota-mail-reset": "Your signature request email credits will be reset on",
"quota-mail": "You've reached your limit of 15 signature request emails for this month. Upgrade now to continue sending emails directly.",
"quota-mail-limit-reached": "You've reached your monthly limit of 15 email credits. Please upgrade your plan to continue sending emails directly.\nYour email credits will reset on {{resetDate}}",
"quota-mail-tip": "Tip: You can still sign <1>unlimited documents</1> by manually sharing the signing request link.",
"quota-mail-head": "Quota reached",
"unauthorized-modal": "You don't have permission to perform this action, please contact {{adminEmail}}.",
@@ -800,6 +800,7 @@
"quota-mail-info": "Para mantener la calidad del servicio y prevenir el spam, OpenSign permite hasta 15 correos electrónicos por mes en el plan gratuito. Mejora tu plan ahora para envíos ilimitados de correos electrónicos.",
"quota-mail-reset": "Los créditos de tu correo electrónico de solicitud de firma se restablecerán el",
"quota-mail": "Has alcanzado tu límite de 15 solicitudes de firma por correo para este mes. Mejora ahora para continuar enviando correos.",
"quota-mail-limit-reached": "Has alcanzado tu límite mensual de 15 créditos de correo electrónico. Mejora tu plan para continuar enviando correos directamente.\nTus créditos de correo electrónico se restablecerán el {{resetDate}}.",
"quota-mail-tip": "Consejo: Aún puedes firmar <1>documentos ilimitados</1> compartiendo manualmente el enlace de solicitud de firma.",
"quota-mail-head": "Cuota alcanzada",
"unauthorized-modal": "No tienes permisos para realizar esta acción, por favor, contacta a {{adminEmail}}.",
@@ -798,6 +798,7 @@
"quota-mail-info": "Pour maintenir la qualité du service et prévenir le spam, OpenSign permet jusqu'à 15 e-mails par mois avec le plan gratuit. Passez à l'offre supérieure pour un envoi illimité d'e-mails.",
"quota-mail-reset": "Les crédits de votre email de demande de signature seront réinitialisés le",
"quota-mail": "Vous avez atteint votre limite de 15 e-mails de demande de signature pour ce mois. Mettez à niveau maintenant pour continuer à envoyer des e-mails directement.",
"quota-mail-limit-reached": "Vous avez atteint votre limite mensuelle de 15 crédits e-mail. Veuillez mettre à niveau votre forfait pour continuer à envoyer des e-mails directement.\nVos crédits e-mail seront réinitialisés le {{resetDate}}.",
"quota-mail-tip": "Astuce: Vous pouvez toujours signer un nombre <1>illimité de documents</1> en partageant manuellement le lien de demande de signature.",
"quota-mail-head": "Quota atteint",
"unauthorized-modal": "Vous n'êtes pas autorisé à effectuer cette action, veuillez contacter {{adminEmail}}.",
@@ -801,6 +801,7 @@
"quota-mail-reset": "आपके हस्ताक्षर अनुरोध ईमेल क्रेडिट इस पर रीसेट हो जाएंगे",
"quota-mail": "आपने इस महीने के लिए 15 हस्ताक्षर अनुरोध ईमेल की अपनी सीमा पूरी कर ली है। सीधे ईमेल भेजना जारी रखने के लिए अभी अपग्रेड करें।",
"quota-mail-tip": "सुझाव: आप अभी भी हस्ताक्षर अनुरोध लिंक को मैन्युअल रूप से साझा करके <1>असीमित दस्तावेज़ों</1> पर हस्ताक्षर कर सकते हैं।",
"quota-mail-limit-reached": "आपने 15 ईमेल क्रेडिट की अपनी मासिक सीमा पूरी कर ली है। सीधे ईमेल भेजना जारी रखने के लिए कृपया अपना प्लान अपग्रेड करें।\nआपके ईमेल क्रेडिट {{resetDate}} को रीसेट हो जाएंगे।",
"quota-mail-head": "कोटा पहुँच गया",
"unauthorized-modal": "आपको यह कार्रवाई करने की अनुमति नहीं है, कृपया {{adminEmail}} से संपर्क करें।",
"sent-this-month": "इस महीने भेजा गया",
@@ -800,6 +800,7 @@
"quota-mail-info": "Per mantenere la qualità del servizio e prevenire lo spam, OpenSign consente fino a 15 email al mese con il piano gratuito. Esegui l'upgrade ora per l'invio illimitato di email.",
"quota-mail-reset": "I tuoi crediti email per richieste di firma saranno ripristinati il",
"quota-mail": "Hai raggiunto il limite di 15 email di richiesta di firma per questo mese. Passa al piano superiore per continuare a inviare email direttamente.",
"quota-mail-limit-reached": "Hai raggiunto il limite mensile di 15 crediti email. Effettua l'upgrade del tuo piano per continuare a inviare email direttamente.\nI tuoi crediti email verranno ripristinati il {{resetDate}}.",
"quota-mail-tip": "Suggerimento: Puoi ancora firmare un numero <1>illimitato de documenti</1> condividendo manualmente il link della richiesta di firma.",
"quota-mail-head": "Quota Raggiunta",
"unauthorized-modal": "Non hai l'autorizzazione per eseguire questa azione, contatta {{adminEmail}}.",
@@ -800,6 +800,7 @@
"quota-mail-info": "서비스 품질을 유지하고 스팸을 방지하기 위해 OpenSign은 무료 플랜에서 월 최대 15개의 이메일을 허용합니다. 지금 업그레이드하여 무제한 이메일 전송을 이용하세요.",
"quota-mail-reset": "서명 요청 이메일 크레딧은 다음에 재설정됩니다.",
"quota-mail": "이번 달 서명 요청 이메일 15개 한도에 도달했습니다. 지금 업그레이드하여 이메일을 계속 직접 보내세요.",
"quota-mail-limit-reached": "월간 이메일 크레딧 15개 한도에 도달했습니다. 이메일을 계속 직접 보내려면 요금제를 업그레이드하세요.\n이메일 크레딧은 {{resetDate}}에 재설정됩니다.",
"quota-mail-tip": "팁: 서명 요청 링크를 수동으로 공유하여 <1>무제한 문서</1>에 계속 서명할 수 있습니다.",
"quota-mail-head": "할당량 도달",
"unauthorized-modal": "이 작업을 수행할 권한이 없습니다. {{adminEmail}}에게 문의하세요.",
@@ -327,8 +327,8 @@ export default async function createBatchDocs(request) {
const Documents = JSON.parse(strDocuments);
const Ip = request?.headers?.['x-real-ip'] || '';
// Access the host from the headers
const publicUrl = request.headers.public_url;
// Use the browser origin so signing links keep the custom domain.
let publicUrl = request.headers.origin || request.headers.public_url;
const parseConfig = {
baseURL: serverUrl,
headers: {
@@ -29,7 +29,7 @@ export default async function createDocumentFromApp(request) {
docCls.set('URL', doc?.URL);
docCls.set('ExtUserPtr', doc.ExtUserPtr);
docCls.set('CreatedBy', doc.CreatedBy);
docCls.set('OriginIp', request?.headers?.['x-real-ip'] || '');
if (doc.Description) {
docCls.set('Description', doc.Description);
}
@@ -37,6 +37,18 @@ const getGmail = async (access_token, displayName) => {
return displayName;
}
};
export const encodeMimeAddress = address => {
const value = String(address || '');
const match = value.match(/^(.*?)\s*<([^<>]+)>$/);
const displayName = match ? match[1].trim() : value;
if (/^[\x00-\x7F]*$/.test(displayName)) return value;
const encodedName = Buffer.from(displayName, 'utf8').toString('base64');
return match ? `=?UTF-8?B?${encodedName}?= <${match[2]}>` : `=?UTF-8?B?${encodedName}?=`;
};
// Function to create a raw email message
const makeEmail = async (
to,
@@ -137,7 +149,7 @@ const makeEmail = async (
'Content-Type: multipart/mixed; boundary="' + boundary + '"\n',
'MIME-Version: 1.0\n',
`To: ${to}\n`,
`From: ${from}\n`,
`From: ${encodeMimeAddress(from)}\n`,
bccHeader,
ccHeader,
replyToHeader,
@@ -155,7 +167,7 @@ const makeEmail = async (
'Content-Type: multipart/mixed; boundary="' + boundary + '"\n',
'MIME-Version: 1.0\n',
`To: ${to}\n`,
`From: ${from}\n`,
`From: ${encodeMimeAddress(from)}\n`,
bccHeader,
ccHeader,
replyToHeader,