Commit Graph

8321 Commits

Author SHA1 Message Date
Mathias Schneider
bdbfbd9074 Support early MIME types for S/MIME encrypted messages (#9973)
Co-authored-by: Mathias Schneider <thiesje@web.de>
2025-09-21 10:14:24 +02:00
Philip Weir
7fd9bf05e3 Only apply fix_path for href attrib in <link>s (#9943) 2025-09-18 07:36:36 +02:00
Pablo Zmdl
8eeedc0c8c Show homograph-warning-icon before email address, unify warning wording
This moves the warning icon that is triggered by the homograph check from the generic "notification area" (between
headers and body) to the header area, before the address that the warning is referring to.
The previous warning left it unclear which address was found to be problematic, which now is obvious.

Additionally there's now a test to check for these warnings to show up in the DOM.
2025-09-17 14:38:12 +02:00
Pablo Zmdl
f76cace186 Show full details with warning icon in case of phishing suspicion
Previously the display-name was stripped, but we should rather show it
so people can judge themselves. We insert a
warning icon with a help text to draw the attention to it.
2025-09-17 14:38:12 +02:00
Pablo Zmdl
600c420d26 Prepend group-names to display-name
This is not optimal handling, but the most appropriate one as long as we don't actually support groups in
addresss-lists. This way users can at least see the group's display-name. And we don't strip text that might be relevant
to spot abusive emails.

Previously group-names were just removed, which makes it harder to spot such abusive emails.
2025-09-17 14:38:12 +02:00
Pablo Zmdl
14c263c608 Also "wash" the name attribute of textarea and select 2025-09-17 14:37:45 +02:00
Pablo Zmdl
0c667c5859 Wash the name attribute also on more elements
It can pollute the document's namespace unless handled.
2025-09-17 14:37:45 +02:00
Oscar Di Manno
b7fb465486 fix: Sanitize filename on download (#9960)
* fix: Sanitize filename on download
* fix: filename encoding in the Content-Disposition header

This improves the handling of the filename* parameter in the Content-Disposition header. Now, the filename* parameter is only used when it differs from the fallback filename

* tests: Add test for the filename* parameter in Content-Disposition
2025-09-14 11:50:31 +02:00
Pablo Zmdl
a03221041e Run test with PHP 8.5-rc (#9970)
* Allow to inject composer arguments into testing scripts

* Run unit tests with PHP v8.5, too

* Run browser tests with PHP 8.5, too

* Depend on php-cs-fixer v3.8, which supports PHP v8.4

* Run code style checks in CI on PHP v8.4

* Check for vars being set and not null before using them as array keys

* Use generic tag name in container image build script

The script is meant for locally building images (the CI workflow runs
other code), so we now use localhost/ as namespace.

* Check that variable is usable before using it as array key

This includes proper type declarations for the method arguments and its return value.

* Ensure that the input to chr() is between 0 and 255.

* Require guzzle v7.10.0, which supports PHP 8.5

* Update phpunit a little to decide when to fail on deprecations

PHPUnit 10.5.47 and later know the flag `--do-not-fail-on-deprecation`, which allows us to make it not exit with code 1
in case of deprecations on the second run of the script. That second run uses the lowest valid dependencies, which might
contain deprecations when used with newer versions of PHP, but still are acceptable versions, and should not make our
tests fail.

* Run message rendering tests with PHP v8.4 and v8.5, too

* Check explicitly for null-ness

0 would be a valid value here.

* Replace chr() by mb_chr() and remove the workaround
2025-09-14 11:33:38 +02:00
Aleksander Machniak
05d39bc406 Fix PHP Fatal error: Uncaught TypeError: html::quote(): Argument #1 ($str) must be of type string, null given (#9957) 2025-08-23 09:17:59 +02:00
Aleksander Machniak
3139bff247 CS-Fixer: Enable modernize_strpos 2025-08-15 13:20:24 +02:00
Michael Voříšek
026eb8c801 Enforce leading backslash for non-namespaced non-Roundcube uses (#9935) 2025-08-15 10:27:00 +02:00
Aleksander Machniak
2c3b46c1f2 Fix regression in handling of non-unicode characters in a plain text message (#9953) 2025-08-13 19:41:18 +02:00
Philip Weir
b9d4fdfadf Use htmleditor config for indentity signature (#9954) 2025-08-10 10:50:42 +02:00
Aleksander Machniak
464e809766 PHP 8.5: Replace __(sleep|wakeup) with __(serialize|unserialize) 2025-08-09 08:07:55 +02:00
Aleksander Machniak
a0d0f5e72e Fix parsing of inline styles that aren't well-formatted (#9948) 2025-08-03 11:28:53 +02:00
Philip Weir
18345fca73 Use asset_url() instead of get_skin_file() for deleteicon on contact edit form (#9933) 2025-07-26 16:07:56 +02:00
Aleksander Machniak
70e4e86148 Support IPv6 in database DSN (#9937) 2025-07-25 18:55:21 +02:00
Aleksander Machniak
55000023ce Localization: Remove non-working links to Transifex 2025-07-20 13:40:08 +02:00
Aleksander Machniak
d3f86b1235 Update localization from Transifex 2025-07-20 13:28:43 +02:00
Aleksander Machniak
c9270783c0 CS/PHPDoc fix 2025-07-13 13:37:51 +02:00
Aleksander Machniak
060fc95672 PHP 8.5 compat. fixes 2025-07-13 13:17:30 +02:00
Aleksander Machniak
199f203e83 Fix PHP deprecation warnings when handling an invalid BODYSTRUCTURE (#9896) 2025-07-05 15:28:00 +02:00
Pablo Zmdl
5cab1c5b1d Render text/markdown mimeparts as HTML (#9899)
This implements rendering mime-types with content-type 'text/markdown'
and 'text/x-markdown' into HTML in the preview and show views (if not
"dispositioned" as "attachment"), but not in the get view for attached
files (the one opening attachments in an external window.)
2025-06-19 17:01:09 +02:00
Philip Weir
529e835342 bug fix: autocomplete fails if contactlist_fields contains vcard fields (#9850) 2025-06-15 09:08:26 +02:00
0xsysr3ll
709a890306 Ensure proper HTTP status codes for error responses (#9886) 2025-06-15 08:43:06 +02:00
Philip Weir
946ba021b8 Add keep_formatting_default setting (#9892) 2025-06-15 08:01:06 +02:00
Aleksander Machniak
ded28db823 Installer: Move logon warning code into rcmail_install, change colors, fix link 2025-06-15 07:53:47 +02:00
Aleksander Machniak
781a23768a Revert unintended change 2025-06-14 18:10:30 +02:00
Aleksander Machniak
eebc08c0c6 CS fix 2025-06-14 17:58:11 +02:00
Aleksander Machniak
fac042bc72 CS fix 2025-06-12 15:50:46 +02:00
Aleksander Machniak
51bd798fe5 CS fix 2025-06-12 15:46:40 +02:00
Aleksander Machniak
0666d8b22e Fix browser history state after removing a contacts group
If we add _gid=0 to the URL, which is how it was before this change,
after a page refresh the currently selected source will not be selected
2025-06-12 15:43:45 +02:00
Aleksander Machniak
0c7a9ce4d6 CS fix 2025-06-12 15:35:08 +02:00
Aleksander Machniak
48381d7f5f Fix "Assign to group" action state after creation of a first group (#9889) 2025-06-12 15:30:11 +02:00
Aleksander Machniak
ed7b459014 Validate timezone stored in session 2025-06-11 14:39:35 +02:00
Rotomeca
b02d6a7027 Can use variable in rcmail.gettext, like the php version (#9837) 2025-06-08 13:19:18 +02:00
Pablo Zmdl
c069be5897 Validate URL parameter in upload code (#9865) 2025-06-01 09:17:23 +02:00
Aleksander Machniak
0f2c627e04 Fix bug where attachments with content type of application/vnd.ms-tnef were not parsed (#7119) 2025-05-29 18:05:53 +02:00
Aleksander Machniak
6a067d223b Fix cursor position on "below the quote" reply in HTML mode (#8700) 2025-05-25 15:29:17 +02:00
Aleksander Machniak
c396e79aae - Fix connecting to LDAP using ldapi:// URI (#8990) 2025-05-25 09:40:50 +02:00
Aleksander Machniak
a0849d7d53 Improve link matching pattern in the string replacer 2025-05-25 08:43:28 +02:00
Aleksander Machniak
8e458b536e Fix new phpstan errors 2025-05-20 15:30:06 +02:00
Aleksander Machniak
1488e57558 OAuth: Relax JWKS verification - 'kid' is optional 2025-05-20 15:20:03 +02:00
Aleksander Machniak
1d080c7494 Bump PHP version for CS fixer, enable some default rules 2025-05-04 12:59:37 +02:00
Aleksander Machniak
699ab5a767 Fix Delete and Empty buttons state while creating a folder (#9047) 2025-04-27 11:13:24 +02:00
Aleksander Machniak
7a792c3049 Label change: "Add recipient (header)" -> "Add field (Cc, Bcc, ...)" (#9350) 2025-04-25 20:00:21 +02:00
Aleksander Machniak
ace33392a2 Replace deprecated 'unload' event with 'pagehide' (#9620) 2025-04-25 19:18:00 +02:00
Aleksander Machniak
1f89b52dc6 CS fix 2025-04-23 18:01:54 +02:00
Aleksander Machniak
58560f1f55 Cleanup 2025-04-23 17:58:08 +02:00