This commit is contained in:
Abhinav Ohri 2026-02-03 19:58:00 -01:00 committed by GitHub
commit 73bb0b1d8f
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -39,6 +39,8 @@ use OCP\Share\IShare;
use OCP\Share\IShareProviderWithNotification;
use OCP\Util;
use Psr\Log\LoggerInterface;
use OCP\IAppConfig;
use OCP\Mail\Provider\IManager as IMailManager;
/**
* Class ShareByMail
@ -57,6 +59,7 @@ class ShareByMailProvider extends DefaultShareProvider implements IShareProvider
public function __construct(
private IConfig $config,
private IAppConfig $appConfig,
private IDBConnection $dbConnection,
private ISecureRandom $secureRandom,
private IUserManager $userManager,
@ -72,6 +75,7 @@ class ShareByMailProvider extends DefaultShareProvider implements IShareProvider
private IEventDispatcher $eventDispatcher,
private IShareManager $shareManager,
private IEmailValidator $emailValidator,
private IMailManager $mailManager,
) {
}
@ -322,6 +326,7 @@ class ShareByMailProvider extends DefaultShareProvider implements IShareProvider
$initiatorUser = $this->userManager->get($initiator);
$initiatorDisplayName = ($initiatorUser instanceof IUser) ? $initiatorUser->getDisplayName() : $initiator;
$initiatorEmail = ($initiatorUser instanceof IUser) ? $initiatorUser->getEMailAddress() : null;
$message = $this->mailer->createMessage();
$emailTemplate = $this->mailer->createEMailTemplate('sharebymail.RecipientNotification', [
@ -380,7 +385,17 @@ class ShareByMailProvider extends DefaultShareProvider implements IShareProvider
]
);
}
$message->setFrom([Util::getDefaultEmailAddress($instanceName) => $senderName]);
$fromAddress = Util::getDefaultEmailAddress(user_part: $instanceName);
$mailProvidersEnabled = $this->appConfig->getValueBool('core', 'mail_providers_enabled');
if ($mailProvidersEnabled && $this->mailManager->has()) {
if ($initiatorEmail !== null) {
$service = $this->mailManager->findServiceByAddress($initiator, $initiatorEmail);
if ($service !== null) {
$fromAddress = $service->getPrimaryAddress()->getAddress();
}
}
}
$message->setFrom([$fromAddress => $senderName]);
// The "Reply-To" is set to the sharer if an mail address is configured
// also the default footer contains a "Do not reply" which needs to be adjusted.