Lisää oletusallekirjoitus kaikille käyttäjille
Jos käyttäjä ei ole asettanut omaa allekirjoitusta mailboxille, generoidaan automaattisesti oletus: Etunimi Yrityksen nimi Postilaatikon sähköpostiosoite Toimii sekä esikatselu-previewssä että sähköpostin lähetyksessä. Käyttäjä voi yliajaa oletuksen tallentamalla oman allekirjoituksen profiilin kautta. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
34
api.php
34
api.php
@@ -568,6 +568,31 @@ function sendTelegramAlert(string $companyId, array $ticket): void {
|
|||||||
curl_close($ch);
|
curl_close($ch);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Generoi oletusallekirjoitukset käyttäjälle niille mailboxeille joille ei ole omaa.
|
||||||
|
* Palauttaa yhdistetyn allekirjoitukset-arrayn (omat + generoitut oletukset).
|
||||||
|
*/
|
||||||
|
function buildSignaturesWithDefaults(array $user, array $userCompanyIds): array {
|
||||||
|
$sigs = $user['signatures'] ?? [];
|
||||||
|
$allCompanies = dbLoadCompanies();
|
||||||
|
foreach ($allCompanies as $comp) {
|
||||||
|
if (!in_array($comp['id'], $userCompanyIds)) continue;
|
||||||
|
$mailboxes = dbLoadMailboxes($comp['id']);
|
||||||
|
foreach ($mailboxes as $mb) {
|
||||||
|
if (!empty($sigs[$mb['id']])) continue; // käyttäjällä on jo oma allekirjoitus
|
||||||
|
// Generoi oletus: Etunimi \n Yritys \n sähköposti
|
||||||
|
$etunimi = trim(explode(' ', $user['nimi'] ?? '')[0]);
|
||||||
|
$yritys = $comp['nimi'] ?? '';
|
||||||
|
$email = $mb['smtp_from_email'] ?? $mb['imap_user'] ?? '';
|
||||||
|
$parts = array_filter([$etunimi, $yritys, $email]);
|
||||||
|
if (!empty($parts)) {
|
||||||
|
$sigs[$mb['id']] = implode("\n", $parts);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return $sigs;
|
||||||
|
}
|
||||||
|
|
||||||
function sendTicketMail(string $to, string $subject, string $body, string $inReplyTo = '', string $references = '', ?array $mailbox = null, string $cc = ''): bool {
|
function sendTicketMail(string $to, string $subject, string $body, string $inReplyTo = '', string $references = '', ?array $mailbox = null, string $cc = ''): bool {
|
||||||
$fromEmail = $mailbox['smtp_from_email'] ?? $mailbox['imap_user'] ?? MAIL_FROM;
|
$fromEmail = $mailbox['smtp_from_email'] ?? $mailbox['imap_user'] ?? MAIL_FROM;
|
||||||
$fromName = $mailbox['smtp_from_name'] ?? $mailbox['nimi'] ?? 'Asiakaspalvelu';
|
$fromName = $mailbox['smtp_from_name'] ?? $mailbox['nimi'] ?? 'Asiakaspalvelu';
|
||||||
@@ -1059,7 +1084,7 @@ switch ($action) {
|
|||||||
'role' => $u['role'],
|
'role' => $u['role'],
|
||||||
'companies' => $companyList,
|
'companies' => $companyList,
|
||||||
'company_id' => $_SESSION['company_id'],
|
'company_id' => $_SESSION['company_id'],
|
||||||
'signatures' => $u['signatures'] ?? [],
|
'signatures' => buildSignaturesWithDefaults($u, $u['companies'] ?? []),
|
||||||
]);
|
]);
|
||||||
} else {
|
} else {
|
||||||
dbRecordLoginAttempt($ip);
|
dbRecordLoginAttempt($ip);
|
||||||
@@ -1093,8 +1118,8 @@ switch ($action) {
|
|||||||
$companyList[] = ['id' => $comp['id'], 'nimi' => $comp['nimi']];
|
$companyList[] = ['id' => $comp['id'], 'nimi' => $comp['nimi']];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// Hae allekirjoitukset
|
// Hae allekirjoitukset (oletus generoituna jos omaa ei ole)
|
||||||
$userSignatures = $u ? ($u['signatures'] ?? []) : [];
|
$userSignatures = $u ? buildSignaturesWithDefaults($u, $u['companies'] ?? []) : [];
|
||||||
// Brändäystiedot domain-pohjaisesti (sama kuin branding-endpoint)
|
// Brändäystiedot domain-pohjaisesti (sama kuin branding-endpoint)
|
||||||
$host = strtolower(explode(':', $_SERVER['HTTP_HOST'] ?? '')[0]);
|
$host = strtolower(explode(':', $_SERVER['HTTP_HOST'] ?? '')[0]);
|
||||||
$branding = dbGetBranding($host);
|
$branding = dbGetBranding($host);
|
||||||
@@ -2235,7 +2260,8 @@ switch ($action) {
|
|||||||
if (!$noSignature) {
|
if (!$noSignature) {
|
||||||
$sigUser = dbGetUser($_SESSION['user_id']);
|
$sigUser = dbGetUser($_SESSION['user_id']);
|
||||||
if ($sigUser) {
|
if ($sigUser) {
|
||||||
$signature = trim($sigUser['signatures'][$mailboxId] ?? '');
|
$allSigs = buildSignaturesWithDefaults($sigUser, $sigUser['companies'] ?? []);
|
||||||
|
$signature = trim($allSigs[$mailboxId] ?? '');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
$emailBody = $signature ? $body . "\n\n-- \n" . $signature : $body;
|
$emailBody = $signature ? $body . "\n\n-- \n" . $signature : $body;
|
||||||
|
|||||||
Reference in New Issue
Block a user