├── release-date.in ├── .npmrc ├── python ├── src │ └── deltachat │ │ ├── py.typed │ │ └── const.py ├── tests │ ├── data │ │ ├── r │ │ ├── r.txt │ │ ├── key │ │ └── d.png │ └── bench_test_setup.py ├── .gitignore ├── MANIFEST.in ├── doc │ ├── _static │ │ ├── favicon.ico │ │ └── custom.css │ ├── jsonrpc │ │ ├── reference.rst │ │ ├── examples.rst │ │ └── intro.rst │ └── cffi │ │ ├── lapi.rst │ │ ├── api.rst │ │ └── intro.rst ├── setup.py ├── README.rst └── mypy.ini ├── deltachat-jsonrpc ├── typescript │ ├── generated │ │ └── .gitkeep │ ├── .prettierignore │ ├── deltachat.ts │ ├── .gitignore │ ├── .npmignore │ ├── src │ │ └── lib.ts │ └── tsconfig.json ├── .gitignore └── src │ └── api │ └── types │ └── mod.rs ├── src ├── tests.rs └── release.rs ├── deltachat-ffi ├── .gitignore ├── Doxyfile-logo.png ├── deltachat.pc.in ├── README.md └── Doxyfile.css ├── deltachat-rpc-server └── npm-package │ ├── .npmignore │ ├── .gitignore │ ├── src │ └── const.js │ ├── package.json │ └── scripts │ └── src │ └── convert_platform.py ├── assets ├── icon-device.png ├── icon-webxdc.png ├── icon-archive.png ├── welcome-image.jpg ├── icon-broadcast.png ├── icon-unencrypted.png ├── icon-saved-messages.png └── statistics-bot.vcf ├── test-data ├── image │ ├── logo.gif │ ├── logo.png │ ├── logo-exif.png │ ├── avatar64x64.png │ ├── image100x50.gif │ ├── screenshot.gif │ ├── screenshot.jpg │ ├── screenshot.png │ ├── avatar900x900.png │ ├── avatar1000x1000.jpg │ ├── screenshot-rgba.png │ ├── 1000x1000-bad-exif.jpg │ ├── rectangle200x180-rotated.jpg │ └── rectangle2000x1800-rotated.jpg ├── webxdc │ ├── chess.xdc │ ├── minimal.xdc │ ├── some-files.xdc │ ├── no-index-html.xdc │ ├── with-jpg-icon.xdc │ ├── with-png-icon.xdc │ ├── with-min-api-1001.xdc │ ├── invalid-no-zip-but-7z.xdc │ ├── with-manifest-no-name.xdc │ ├── with-minimal-manifest.xdc │ ├── request-internet-access.xdc │ ├── mapstest-integration-set.xdc │ ├── mapstest-integration-unset.xdc │ ├── with-manifest-and-png-icon.xdc │ └── with-manifest-empty-name.xdc ├── message │ ├── cp1252-html.eml │ ├── dkimchecks-2022-09-28 │ │ ├── alice@mailo.com │ │ │ ├── alice@ik.me │ │ │ ├── alice@aol.com │ │ │ ├── alice@buzon.uy │ │ │ ├── alice@mail.de │ │ │ ├── alice@gmail.com │ │ │ ├── alice@icloud.com │ │ │ ├── alice@posteo.de │ │ │ ├── alice@riseup.net │ │ │ ├── alice@yahoo.com │ │ │ ├── alice@disroot.org │ │ │ ├── alice@fastmail.com │ │ │ ├── alice@yandex.ru │ │ │ ├── alice@hotmail.com │ │ │ ├── alice@outlook.com │ │ │ ├── alice@delta.blinzeln.de │ │ │ └── forged-authres-added@example.com │ │ ├── alice@delta.blinzeln.de │ │ │ ├── alice@ik.me │ │ │ ├── alice@aol.com │ │ │ ├── alice@mail.de │ │ │ ├── alice@buzon.uy │ │ │ ├── alice@gmail.com │ │ │ ├── alice@icloud.com │ │ │ ├── alice@mailo.com │ │ │ ├── alice@posteo.de │ │ │ ├── alice@riseup.net │ │ │ ├── alice@yahoo.com │ │ │ ├── alice@disroot.org │ │ │ ├── alice@fastmail.com │ │ │ ├── alice@yandex.ru │ │ │ ├── alice@hotmail.com │ │ │ ├── alice@mail.ru │ │ │ └── alice@outlook.com │ │ ├── alice@yandex.ru │ │ │ ├── alice@delta.blinzeln.de │ │ │ ├── forged-authres-added@example.com │ │ │ ├── alice@buzon.uy │ │ │ ├── alice@ik.me │ │ │ ├── alice@aol.com │ │ │ ├── alice@disroot.org │ │ │ ├── alice@mail.ru │ │ │ ├── alice@posteo.de │ │ │ ├── alice@yahoo.com │ │ │ ├── alice@icloud.com │ │ │ ├── alice@mailo.com │ │ │ ├── alice@riseup.net │ │ │ ├── alice@mail.de │ │ │ ├── alice@fastmail.com │ │ │ ├── alice@gmail.com │ │ │ ├── alice@hotmail.com │ │ │ └── alice@outlook.com │ │ ├── alice@gmx.de │ │ │ └── alice@slack.com │ │ ├── alice@buzon.uy │ │ │ ├── alice@delta.blinzeln.de │ │ │ ├── forged-authres-added@example.com │ │ │ ├── alice@ik.me │ │ │ ├── alice@mail.de │ │ │ ├── alice@aol.com │ │ │ ├── alice@posteo.de │ │ │ ├── alice@gmail.com │ │ │ ├── alice@mailo.com │ │ │ ├── alice@riseup.net │ │ │ ├── alice@yahoo.com │ │ │ ├── alice@disroot.org │ │ │ ├── alice@icloud.com │ │ │ ├── alice@yandex.ru │ │ │ ├── alice@mail.ru │ │ │ ├── alice@hotmail.com │ │ │ ├── alice@outlook.com │ │ │ └── alice@fastmail.com │ │ ├── alice@e.email │ │ │ ├── forged-authres-added@example.com │ │ │ ├── alice@delta.blinzeln.de │ │ │ ├── alice@ik.me │ │ │ ├── alice@aol.com │ │ │ ├── alice@mail.ru │ │ │ ├── alice@buzon.uy │ │ │ ├── alice@posteo.de │ │ │ ├── alice@mail.de │ │ │ ├── alice@mailo.com │ │ │ ├── alice@yahoo.com │ │ │ ├── alice@gmail.com │ │ │ ├── alice@icloud.com │ │ │ ├── alice@riseup.net │ │ │ ├── alice@disroot.org │ │ │ ├── alice@fastmail.com │ │ │ ├── alice@outlook.com │ │ │ └── alice@hotmail.com │ │ ├── alice@disroot.org │ │ │ ├── alice@delta.blinzeln.de │ │ │ ├── forged-authres-added@example.com │ │ │ ├── alice@ik.me │ │ │ ├── alice@aol.com │ │ │ ├── alice@mail.de │ │ │ ├── alice@buzon.uy │ │ │ ├── alice@gmail.com │ │ │ ├── alice@posteo.de │ │ │ ├── alice@icloud.com │ │ │ ├── alice@riseup.net │ │ │ ├── alice@mailo.com │ │ │ ├── alice@yandex.ru │ │ │ ├── alice@mail.ru │ │ │ ├── alice@hotmail.com │ │ │ ├── alice@outlook.com │ │ │ └── alice@fastmail.com │ │ ├── alice@riseup.net │ │ │ ├── alice@delta.blinzeln.de │ │ │ ├── forged-authres-added@example.com │ │ │ ├── alice@ik.me │ │ │ ├── alice@aol.com │ │ │ ├── alice@mail.de │ │ │ ├── alice@posteo.de │ │ │ ├── alice@buzon.uy │ │ │ ├── alice@disroot.org │ │ │ ├── alice@gmail.com │ │ │ ├── alice@mailo.com │ │ │ ├── alice@icloud.com │ │ │ ├── alice@yandex.ru │ │ │ ├── alice@mail.ru │ │ │ ├── alice@hotmail.com │ │ │ ├── alice@outlook.com │ │ │ └── alice@fastmail.com │ │ ├── alice@mail.ru │ │ │ ├── alice@delta.blinzeln.de │ │ │ ├── forged-authres-added@example.com │ │ │ ├── alice@ik.me │ │ │ ├── alice@mail.de │ │ │ ├── alice@buzon.uy │ │ │ ├── alice@mailo.com │ │ │ ├── alice@posteo.de │ │ │ ├── alice@riseup.net │ │ │ ├── alice@aol.com │ │ │ ├── alice@gmail.com │ │ │ ├── alice@yandex.ru │ │ │ ├── alice@disroot.org │ │ │ ├── alice@icloud.com │ │ │ ├── alice@yahoo.com │ │ │ ├── alice@fastmail.com │ │ │ ├── alice@hotmail.com │ │ │ └── alice@outlook.com │ │ ├── alice@mail.de │ │ │ ├── alice@ik.me │ │ │ ├── alice@aol.com │ │ │ ├── alice@buzon.uy │ │ │ ├── alice@posteo.de │ │ │ ├── alice@disroot.org │ │ │ ├── alice@gmail.com │ │ │ ├── alice@mailo.com │ │ │ ├── alice@riseup.net │ │ │ ├── alice@yahoo.com │ │ │ ├── alice@icloud.com │ │ │ ├── alice@delta.blinzeln.de │ │ │ ├── forged-authres-added@example.com │ │ │ ├── alice@yandex.ru │ │ │ ├── alice@mail.ru │ │ │ ├── alice@hotmail.com │ │ │ ├── alice@outlook.com │ │ │ └── alice@fastmail.com │ │ ├── alice@aol.com │ │ │ ├── alice@mail.ru │ │ │ ├── alice@buzon.uy │ │ │ ├── alice@delta.blinzeln.de │ │ │ ├── alice@yandex.ru │ │ │ ├── alice@ik.me │ │ │ ├── alice@mailo.com │ │ │ ├── alice@disroot.org │ │ │ ├── alice@posteo.de │ │ │ ├── alice@icloud.com │ │ │ ├── alice@gmail.com │ │ │ ├── forged-authres-added@example.com │ │ │ ├── alice@fastmail.com │ │ │ ├── alice@hotmail.com │ │ │ └── alice@outlook.com │ │ ├── alice@yahoo.com │ │ │ ├── alice@ik.me │ │ │ ├── alice@mail.ru │ │ │ ├── alice@delta.blinzeln.de │ │ │ ├── alice@posteo.de │ │ │ ├── alice@yandex.ru │ │ │ ├── alice@buzon.uy │ │ │ ├── alice@disroot.org │ │ │ ├── alice@gmail.com │ │ │ ├── alice@mail.de │ │ │ ├── alice@riseup.net │ │ │ ├── alice@icloud.com │ │ │ ├── forged-authres-added@example.com │ │ │ ├── alice@fastmail.com │ │ │ ├── alice@hotmail.com │ │ │ └── alice@outlook.com │ │ ├── alice@zohomail.eu │ │ │ ├── forged-authres-added@example.com │ │ │ ├── alice@delta.blinzeln.de │ │ │ ├── alice@ik.me │ │ │ ├── alice@mail.de │ │ │ ├── alice@aol.com │ │ │ ├── alice@buzon.uy │ │ │ ├── alice@mailo.com │ │ │ ├── alice@posteo.de │ │ │ ├── alice@gmail.com │ │ │ ├── alice@riseup.net │ │ │ ├── alice@fastmail.com │ │ │ ├── alice@icloud.com │ │ │ ├── alice@yahoo.com │ │ │ ├── alice@disroot.org │ │ │ ├── alice@yandex.ru │ │ │ ├── alice@mail.ru │ │ │ └── alice@hotmail.com │ │ ├── alice@hotmail.com │ │ │ ├── alice@ik.me │ │ │ ├── alice@aol.com │ │ │ ├── alice@mail.de │ │ │ ├── alice@mail.ru │ │ │ ├── alice@yandex.ru │ │ │ ├── alice@gmail.com │ │ │ ├── alice@icloud.com │ │ │ ├── alice@mailo.com │ │ │ ├── alice@posteo.de │ │ │ ├── alice@yahoo.com │ │ │ ├── alice@riseup.net │ │ │ ├── alice@disroot.org │ │ │ ├── alice@fastmail.com │ │ │ └── alice@delta.blinzeln.de │ │ ├── alice@outlook.com │ │ │ ├── alice@ik.me │ │ │ ├── alice@mail.de │ │ │ ├── alice@mail.ru │ │ │ ├── alice@gmail.com │ │ │ ├── alice@icloud.com │ │ │ ├── alice@mailo.com │ │ │ ├── alice@yahoo.com │ │ │ ├── alice@yandex.ru │ │ │ ├── alice@riseup.net │ │ │ ├── alice@disroot.org │ │ │ ├── alice@fastmail.com │ │ │ ├── alice@delta.blinzeln.de │ │ │ └── alice@hotmail.com │ │ ├── alice@posteo.de │ │ │ ├── alice@ik.me │ │ │ ├── alice@aol.com │ │ │ ├── alice@mail.de │ │ │ ├── alice@buzon.uy │ │ │ ├── alice@delta.blinzeln.de │ │ │ ├── alice@gmail.com │ │ │ ├── alice@mailo.com │ │ │ ├── alice@riseup.net │ │ │ ├── alice@yahoo.com │ │ │ ├── alice@icloud.com │ │ │ ├── forged-authres-added@example.com │ │ │ ├── alice@disroot.org │ │ │ ├── alice@yandex.ru │ │ │ ├── alice@mail.ru │ │ │ ├── alice@fastmail.com │ │ │ ├── alice@hotmail.com │ │ │ └── alice@outlook.com │ │ ├── alice@ik.me │ │ │ ├── alice@delta.blinzeln.de │ │ │ ├── alice@mail.de │ │ │ ├── alice@aol.com │ │ │ ├── alice@posteo.de │ │ │ ├── forged-authres-added@example.com │ │ │ ├── alice@buzon.uy │ │ │ ├── alice@gmail.com │ │ │ ├── alice@mailo.com │ │ │ ├── alice@riseup.net │ │ │ ├── alice@yahoo.com │ │ │ ├── alice@disroot.org │ │ │ ├── alice@icloud.com │ │ │ ├── alice@yandex.ru │ │ │ ├── alice@hotmail.com │ │ │ ├── alice@outlook.com │ │ │ └── alice@fastmail.com │ │ ├── alice@gmail.com │ │ │ ├── forged-authres-added@example.com │ │ │ ├── alice@delta.blinzeln.de │ │ │ ├── alice@aol.com │ │ │ ├── alice@ik.me │ │ │ ├── alice@buzon.uy │ │ │ ├── alice@posteo.de │ │ │ ├── alice@mailo.com │ │ │ ├── alice@mail.de │ │ │ ├── alice@yahoo.com │ │ │ ├── alice@riseup.net │ │ │ ├── alice@icloud.com │ │ │ └── alice@disroot.org │ │ ├── alice@icloud.com │ │ │ ├── alice@ik.me │ │ │ ├── alice@aol.com │ │ │ ├── alice@buzon.uy │ │ │ ├── alice@yahoo.com │ │ │ ├── alice@disroot.org │ │ │ ├── alice@mail.de │ │ │ ├── alice@gmail.com │ │ │ ├── alice@mailo.com │ │ │ ├── alice@posteo.de │ │ │ ├── alice@riseup.net │ │ │ ├── alice@delta.blinzeln.de │ │ │ ├── alice@mail.ru │ │ │ ├── forged-authres-added@example.com │ │ │ ├── alice@yandex.ru │ │ │ ├── alice@outlook.com │ │ │ └── alice@fastmail.com │ │ ├── alice@nauta.cu │ │ │ └── forged@disroot.org │ │ └── alice@testrun.org │ │ │ └── alice@gmx.de │ ├── mailparse-0.16.0-panic.eml │ ├── invalid_email_to.eml │ ├── text_plain_iso88591.eml │ ├── text_plain_unspecified.eml │ ├── text_html.eml │ ├── text_plain_flowed.eml │ ├── text_alt_html.eml │ ├── dkimchecks_strip.py │ ├── text_alt_plain_html.eml │ ├── mail_with_cc.txt │ ├── mail_with_message_id.txt │ ├── text_alt_plain.eml │ ├── webxdc_bad_extension.eml │ ├── videochat_invitation.eml │ ├── attach_filename_apostrophed_cp1252.eml │ ├── mail_with_user_avatar_deleted.eml │ ├── attach_filename_apostrophed.eml │ ├── ctext_unsigned.asc │ ├── gmx-quote-body.eml │ ├── attach_filename_encoded_words.eml │ ├── quote_attach.eml │ └── attach_filename_encoded_words_binary.eml ├── golden │ ├── test_outgoing_mua_msg │ ├── test_broadcast_joining_golden_private_chat │ ├── test_old_message_5 │ ├── receive_imf_older_message_from_2nd_device │ ├── test_outgoing_mua_msg_pgp │ ├── test_outgoing_encrypted_msg │ ├── test_old_message_1 │ ├── test_broadcast_joining_golden_alice │ ├── test_sync_broadcast_alice1 │ ├── test_sync_broadcast_alice2 │ ├── test_broadcast_joining_golden_bob │ ├── test_old_message_2 │ ├── chat_test_parallel_member_remove │ ├── two_group_securejoins │ ├── test_old_message_3 │ └── test_sync_broadcast_bob └── key │ └── alice-secret.asc ├── deltachat-rpc-client ├── src │ └── deltachat_rpc_client │ │ ├── py.typed │ │ └── __init__.py ├── tox.ini └── examples │ └── echobot.py ├── scripts ├── run-doxygen.sh ├── clippy.sh ├── deny.sh ├── run-rpc-test.sh ├── make-rpc-testenv.sh ├── codespell.sh ├── manual_remote_tests.sh ├── coredeps │ ├── Dockerfile │ └── install-rust.sh ├── make-python-testenv.sh ├── remote_tests_rust.sh ├── run-python-test.sh ├── run-integration-tests.sh ├── update-provider-database.sh └── remote_tests_python.sh ├── fuzz ├── fuzz_targets │ ├── fuzz_mailparse.rs │ ├── fuzz_dateparse.rs │ └── fuzz_format_flowed.rs └── Cargo.toml ├── deltachat-time └── Cargo.toml ├── deltachat-ratelimit └── Cargo.toml ├── deltachat_derive └── Cargo.toml ├── format-flowed └── Cargo.toml ├── proptest-regressions └── dc_strencode.txt ├── .github ├── dependabot.yml ├── workflows │ └── dependabot.yml └── ISSUE_TEMPLATE │ └── bug_report.md ├── .cargo └── config.toml ├── deltachat-repl └── Cargo.toml └── .gitattributes /release-date.in: -------------------------------------------------------------------------------- 1 | 2025-12-11 -------------------------------------------------------------------------------- /.npmrc: -------------------------------------------------------------------------------- 1 | package-lock=false 2 | -------------------------------------------------------------------------------- /python/src/deltachat/py.typed: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /python/tests/data/r: -------------------------------------------------------------------------------- 1 | 2 | hello 3 | -------------------------------------------------------------------------------- /python/tests/data/r.txt: -------------------------------------------------------------------------------- 1 | 2 | hello 3 | -------------------------------------------------------------------------------- /python/tests/data/key: -------------------------------------------------------------------------------- 1 | ../../../test-data/key -------------------------------------------------------------------------------- /deltachat-jsonrpc/typescript/generated/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /deltachat-jsonrpc/.gitignore: -------------------------------------------------------------------------------- 1 | openrpc/openrpc.json 2 | accounts/ 3 | 4 | .cargo -------------------------------------------------------------------------------- /deltachat-jsonrpc/typescript/.prettierignore: -------------------------------------------------------------------------------- 1 | coverage 2 | dist 3 | generated -------------------------------------------------------------------------------- /deltachat-jsonrpc/typescript/deltachat.ts: -------------------------------------------------------------------------------- 1 | export * from "./src/lib.js"; 2 | -------------------------------------------------------------------------------- /src/tests.rs: -------------------------------------------------------------------------------- 1 | mod account_events; 2 | mod aeap; 3 | mod verified_chats; 4 | -------------------------------------------------------------------------------- /deltachat-ffi/.gitignore: -------------------------------------------------------------------------------- 1 | /target/ 2 | **/*.rs.bk 3 | Cargo.lock 4 | .profile 5 | -------------------------------------------------------------------------------- /deltachat-rpc-server/npm-package/.npmignore: -------------------------------------------------------------------------------- 1 | platform_package/* 2 | scripts/ 3 | *.tgz -------------------------------------------------------------------------------- /python/.gitignore: -------------------------------------------------------------------------------- 1 | doc/_build/ 2 | build/ 3 | dist/ 4 | src/deltachat/capi.abi3.so 5 | -------------------------------------------------------------------------------- /assets/icon-device.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chatmail/core/HEAD/assets/icon-device.png -------------------------------------------------------------------------------- /assets/icon-webxdc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chatmail/core/HEAD/assets/icon-webxdc.png -------------------------------------------------------------------------------- /deltachat-rpc-server/npm-package/.gitignore: -------------------------------------------------------------------------------- 1 | platform_package 2 | *.tgz 3 | package-lock.json -------------------------------------------------------------------------------- /assets/icon-archive.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chatmail/core/HEAD/assets/icon-archive.png -------------------------------------------------------------------------------- /assets/welcome-image.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chatmail/core/HEAD/assets/welcome-image.jpg -------------------------------------------------------------------------------- /python/tests/data/d.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chatmail/core/HEAD/python/tests/data/d.png -------------------------------------------------------------------------------- /test-data/image/logo.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chatmail/core/HEAD/test-data/image/logo.gif -------------------------------------------------------------------------------- /test-data/image/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chatmail/core/HEAD/test-data/image/logo.png -------------------------------------------------------------------------------- /assets/icon-broadcast.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chatmail/core/HEAD/assets/icon-broadcast.png -------------------------------------------------------------------------------- /assets/icon-unencrypted.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chatmail/core/HEAD/assets/icon-unencrypted.png -------------------------------------------------------------------------------- /test-data/webxdc/chess.xdc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chatmail/core/HEAD/test-data/webxdc/chess.xdc -------------------------------------------------------------------------------- /python/MANIFEST.in: -------------------------------------------------------------------------------- 1 | include tox.ini 2 | recursive-include tests *.py 3 | recursive-include tests/data * 4 | -------------------------------------------------------------------------------- /test-data/image/logo-exif.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chatmail/core/HEAD/test-data/image/logo-exif.png -------------------------------------------------------------------------------- /test-data/webxdc/minimal.xdc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chatmail/core/HEAD/test-data/webxdc/minimal.xdc -------------------------------------------------------------------------------- /assets/icon-saved-messages.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chatmail/core/HEAD/assets/icon-saved-messages.png -------------------------------------------------------------------------------- /deltachat-ffi/Doxyfile-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chatmail/core/HEAD/deltachat-ffi/Doxyfile-logo.png -------------------------------------------------------------------------------- /python/doc/_static/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chatmail/core/HEAD/python/doc/_static/favicon.ico -------------------------------------------------------------------------------- /test-data/image/avatar64x64.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chatmail/core/HEAD/test-data/image/avatar64x64.png -------------------------------------------------------------------------------- /test-data/image/image100x50.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chatmail/core/HEAD/test-data/image/image100x50.gif -------------------------------------------------------------------------------- /test-data/image/screenshot.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chatmail/core/HEAD/test-data/image/screenshot.gif -------------------------------------------------------------------------------- /test-data/image/screenshot.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chatmail/core/HEAD/test-data/image/screenshot.jpg -------------------------------------------------------------------------------- /test-data/image/screenshot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chatmail/core/HEAD/test-data/image/screenshot.png -------------------------------------------------------------------------------- /test-data/webxdc/some-files.xdc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chatmail/core/HEAD/test-data/webxdc/some-files.xdc -------------------------------------------------------------------------------- /deltachat-rpc-client/src/deltachat_rpc_client/py.typed: -------------------------------------------------------------------------------- 1 | # PEP 561 marker file. See https://peps.python.org/pep-0561/ -------------------------------------------------------------------------------- /test-data/image/avatar900x900.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chatmail/core/HEAD/test-data/image/avatar900x900.png -------------------------------------------------------------------------------- /test-data/message/cp1252-html.eml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chatmail/core/HEAD/test-data/message/cp1252-html.eml -------------------------------------------------------------------------------- /test-data/message/dkimchecks-2022-09-28/alice@mailo.com/alice@ik.me: -------------------------------------------------------------------------------- 1 | From: 2 | To: 3 | -------------------------------------------------------------------------------- /test-data/webxdc/no-index-html.xdc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chatmail/core/HEAD/test-data/webxdc/no-index-html.xdc -------------------------------------------------------------------------------- /test-data/webxdc/with-jpg-icon.xdc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chatmail/core/HEAD/test-data/webxdc/with-jpg-icon.xdc -------------------------------------------------------------------------------- /test-data/webxdc/with-png-icon.xdc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chatmail/core/HEAD/test-data/webxdc/with-png-icon.xdc -------------------------------------------------------------------------------- /test-data/image/avatar1000x1000.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chatmail/core/HEAD/test-data/image/avatar1000x1000.jpg -------------------------------------------------------------------------------- /test-data/image/screenshot-rgba.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chatmail/core/HEAD/test-data/image/screenshot-rgba.png -------------------------------------------------------------------------------- /test-data/message/dkimchecks-2022-09-28/alice@mailo.com/alice@aol.com: -------------------------------------------------------------------------------- 1 | From: 2 | To: 3 | -------------------------------------------------------------------------------- /test-data/message/dkimchecks-2022-09-28/alice@mailo.com/alice@buzon.uy: -------------------------------------------------------------------------------- 1 | From: 2 | To: 3 | -------------------------------------------------------------------------------- /test-data/message/dkimchecks-2022-09-28/alice@mailo.com/alice@mail.de: -------------------------------------------------------------------------------- 1 | From: 2 | To: 3 | -------------------------------------------------------------------------------- /test-data/message/mailparse-0.16.0-panic.eml: -------------------------------------------------------------------------------- 1 | Content-Type: multipart/mixed; boundary="foobar" 2 | 3 | --foobar-- 4 | -------------------------------------------------------------------------------- /test-data/image/1000x1000-bad-exif.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chatmail/core/HEAD/test-data/image/1000x1000-bad-exif.jpg -------------------------------------------------------------------------------- /test-data/message/dkimchecks-2022-09-28/alice@mailo.com/alice@gmail.com: -------------------------------------------------------------------------------- 1 | From: 2 | To: 3 | -------------------------------------------------------------------------------- /test-data/message/dkimchecks-2022-09-28/alice@mailo.com/alice@icloud.com: -------------------------------------------------------------------------------- 1 | From: 2 | To: 3 | -------------------------------------------------------------------------------- /test-data/message/dkimchecks-2022-09-28/alice@mailo.com/alice@posteo.de: -------------------------------------------------------------------------------- 1 | From: 2 | To: 3 | -------------------------------------------------------------------------------- /test-data/message/dkimchecks-2022-09-28/alice@mailo.com/alice@riseup.net: -------------------------------------------------------------------------------- 1 | From: 2 | To: 3 | -------------------------------------------------------------------------------- /test-data/message/dkimchecks-2022-09-28/alice@mailo.com/alice@yahoo.com: -------------------------------------------------------------------------------- 1 | From: 2 | To: 3 | -------------------------------------------------------------------------------- /test-data/message/invalid_email_to.eml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chatmail/core/HEAD/test-data/message/invalid_email_to.eml -------------------------------------------------------------------------------- /test-data/webxdc/with-min-api-1001.xdc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chatmail/core/HEAD/test-data/webxdc/with-min-api-1001.xdc -------------------------------------------------------------------------------- /python/doc/jsonrpc/reference.rst: -------------------------------------------------------------------------------- 1 | API Reference 2 | ============= 3 | 4 | .. automodule:: deltachat_rpc_client 5 | :members: 6 | -------------------------------------------------------------------------------- /test-data/message/dkimchecks-2022-09-28/alice@delta.blinzeln.de/alice@ik.me: -------------------------------------------------------------------------------- 1 | From: 2 | To: 3 | -------------------------------------------------------------------------------- /test-data/message/dkimchecks-2022-09-28/alice@mailo.com/alice@disroot.org: -------------------------------------------------------------------------------- 1 | From: 2 | To: 3 | -------------------------------------------------------------------------------- /test-data/message/dkimchecks-2022-09-28/alice@mailo.com/alice@fastmail.com: -------------------------------------------------------------------------------- 1 | From: 2 | To: 3 | -------------------------------------------------------------------------------- /test-data/message/text_plain_iso88591.eml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chatmail/core/HEAD/test-data/message/text_plain_iso88591.eml -------------------------------------------------------------------------------- /test-data/webxdc/invalid-no-zip-but-7z.xdc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chatmail/core/HEAD/test-data/webxdc/invalid-no-zip-but-7z.xdc -------------------------------------------------------------------------------- /test-data/webxdc/with-manifest-no-name.xdc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chatmail/core/HEAD/test-data/webxdc/with-manifest-no-name.xdc -------------------------------------------------------------------------------- /test-data/webxdc/with-minimal-manifest.xdc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chatmail/core/HEAD/test-data/webxdc/with-minimal-manifest.xdc -------------------------------------------------------------------------------- /scripts/run-doxygen.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | set -e 3 | 4 | cd deltachat-ffi 5 | PROJECT_NUMBER=$(git log -1 --format="%h (%cd)") doxygen 6 | -------------------------------------------------------------------------------- /test-data/image/rectangle200x180-rotated.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chatmail/core/HEAD/test-data/image/rectangle200x180-rotated.jpg -------------------------------------------------------------------------------- /test-data/message/dkimchecks-2022-09-28/alice@delta.blinzeln.de/alice@aol.com: -------------------------------------------------------------------------------- 1 | From: 2 | To: 3 | -------------------------------------------------------------------------------- /test-data/message/dkimchecks-2022-09-28/alice@delta.blinzeln.de/alice@mail.de: -------------------------------------------------------------------------------- 1 | From: 2 | To: 3 | -------------------------------------------------------------------------------- /test-data/webxdc/request-internet-access.xdc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chatmail/core/HEAD/test-data/webxdc/request-internet-access.xdc -------------------------------------------------------------------------------- /test-data/image/rectangle2000x1800-rotated.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chatmail/core/HEAD/test-data/image/rectangle2000x1800-rotated.jpg -------------------------------------------------------------------------------- /test-data/message/dkimchecks-2022-09-28/alice@delta.blinzeln.de/alice@buzon.uy: -------------------------------------------------------------------------------- 1 | From: 2 | To: 3 | -------------------------------------------------------------------------------- /test-data/message/dkimchecks-2022-09-28/alice@delta.blinzeln.de/alice@gmail.com: -------------------------------------------------------------------------------- 1 | From: 2 | To: 3 | -------------------------------------------------------------------------------- /test-data/message/dkimchecks-2022-09-28/alice@delta.blinzeln.de/alice@icloud.com: -------------------------------------------------------------------------------- 1 | From: 2 | To: 3 | -------------------------------------------------------------------------------- /test-data/message/dkimchecks-2022-09-28/alice@delta.blinzeln.de/alice@mailo.com: -------------------------------------------------------------------------------- 1 | From: 2 | To: 3 | -------------------------------------------------------------------------------- /test-data/message/dkimchecks-2022-09-28/alice@delta.blinzeln.de/alice@posteo.de: -------------------------------------------------------------------------------- 1 | From: 2 | To: 3 | -------------------------------------------------------------------------------- /test-data/message/dkimchecks-2022-09-28/alice@delta.blinzeln.de/alice@riseup.net: -------------------------------------------------------------------------------- 1 | From: 2 | To: 3 | -------------------------------------------------------------------------------- /test-data/message/dkimchecks-2022-09-28/alice@delta.blinzeln.de/alice@yahoo.com: -------------------------------------------------------------------------------- 1 | From: 2 | To: 3 | -------------------------------------------------------------------------------- /test-data/message/dkimchecks-2022-09-28/alice@yandex.ru/alice@delta.blinzeln.de: -------------------------------------------------------------------------------- 1 | From: 2 | To: 3 | -------------------------------------------------------------------------------- /test-data/webxdc/mapstest-integration-set.xdc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chatmail/core/HEAD/test-data/webxdc/mapstest-integration-set.xdc -------------------------------------------------------------------------------- /test-data/webxdc/mapstest-integration-unset.xdc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chatmail/core/HEAD/test-data/webxdc/mapstest-integration-unset.xdc -------------------------------------------------------------------------------- /test-data/webxdc/with-manifest-and-png-icon.xdc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chatmail/core/HEAD/test-data/webxdc/with-manifest-and-png-icon.xdc -------------------------------------------------------------------------------- /test-data/webxdc/with-manifest-empty-name.xdc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chatmail/core/HEAD/test-data/webxdc/with-manifest-empty-name.xdc -------------------------------------------------------------------------------- /test-data/message/dkimchecks-2022-09-28/alice@delta.blinzeln.de/alice@disroot.org: -------------------------------------------------------------------------------- 1 | From: 2 | To: 3 | -------------------------------------------------------------------------------- /test-data/message/dkimchecks-2022-09-28/alice@delta.blinzeln.de/alice@fastmail.com: -------------------------------------------------------------------------------- 1 | From: 2 | To: 3 | -------------------------------------------------------------------------------- /python/setup.py: -------------------------------------------------------------------------------- 1 | from setuptools import setup 2 | 3 | if __name__ == "__main__": 4 | setup(cffi_modules=["src/deltachat/_build.py:ffibuilder"]) 5 | -------------------------------------------------------------------------------- /scripts/clippy.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # Run clippy for all Rust code in the project. 3 | cargo clippy --workspace --all-targets --all-features -- -D warnings 4 | -------------------------------------------------------------------------------- /deltachat-jsonrpc/typescript/.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | dist 3 | test_dist 4 | coverage 5 | yarn.lock 6 | package-lock.json 7 | docs 8 | accounts 9 | generated 10 | -------------------------------------------------------------------------------- /deltachat-rpc-server/npm-package/src/const.js: -------------------------------------------------------------------------------- 1 | //@ts-check 2 | 3 | export const PATH_EXECUTABLE_NAME = 'deltachat-rpc-server' 4 | 5 | export const ENV_VAR_NAME = "DELTA_CHAT_RPC_SERVER" -------------------------------------------------------------------------------- /fuzz/fuzz_targets/fuzz_mailparse.rs: -------------------------------------------------------------------------------- 1 | use bolero::check; 2 | 3 | fn main() { 4 | check!().for_each(|data: &[u8]| { 5 | mailparse::parse_mail(data).ok(); 6 | }); 7 | } 8 | -------------------------------------------------------------------------------- /scripts/deny.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | # Update package cache without changing the lockfile. 4 | cargo update --dry-run 5 | 6 | cargo deny --workspace --all-features check -D warnings 7 | -------------------------------------------------------------------------------- /deltachat-time/Cargo.toml: -------------------------------------------------------------------------------- 1 | [package] 2 | name = "deltachat-time" 3 | version = "1.0.0" 4 | description = "Time-related tools" 5 | edition = "2021" 6 | license = "MPL-2.0" 7 | 8 | [dependencies] 9 | -------------------------------------------------------------------------------- /test-data/message/dkimchecks-2022-09-28/alice@yandex.ru/forged-authres-added@example.com: -------------------------------------------------------------------------------- 1 | From: forged-authres-added@example.com 2 | Authentication-Results: aaa.com; dkim=pass header.i=@example.com 3 | -------------------------------------------------------------------------------- /deltachat-ratelimit/Cargo.toml: -------------------------------------------------------------------------------- 1 | [package] 2 | name = "ratelimit" 3 | version = "1.0.0" 4 | description = "Token bucket implementation" 5 | edition = "2021" 6 | license = "MPL-2.0" 7 | 8 | [dependencies] 9 | -------------------------------------------------------------------------------- /scripts/run-rpc-test.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | set -euo pipefail 3 | cargo install --locked --path deltachat-rpc-server/ --root "$PWD/venv" --debug 4 | PATH="$PWD/venv/bin:$PATH" tox -c deltachat-rpc-client 5 | -------------------------------------------------------------------------------- /test-data/message/dkimchecks-2022-09-28/alice@mailo.com/alice@yandex.ru: -------------------------------------------------------------------------------- 1 | Authentication-Results: iva4-143b1447cf50.qloud-c.yandex.net; dkim=pass header.i=@yandex.ru 2 | From: 3 | To: 4 | -------------------------------------------------------------------------------- /test-data/message/dkimchecks-2022-09-28/alice@gmx.de/alice@slack.com: -------------------------------------------------------------------------------- 1 | Authentication-Results: gmx.net; dkim=pass header.i=@slack.com 2 | Authentication-Results: gmx.net; dkim=pass header.i=@amazonses.com 3 | From: alice@slack.com -------------------------------------------------------------------------------- /test-data/message/dkimchecks-2022-09-28/alice@mailo.com/alice@hotmail.com: -------------------------------------------------------------------------------- 1 | ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=none; dmarc=none; 2 | dkim=none; arc=none 3 | From: 4 | To: 5 | -------------------------------------------------------------------------------- /test-data/message/dkimchecks-2022-09-28/alice@mailo.com/alice@outlook.com: -------------------------------------------------------------------------------- 1 | ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=none; dmarc=none; 2 | dkim=none; arc=none 3 | From: 4 | To: 5 | -------------------------------------------------------------------------------- /deltachat-jsonrpc/typescript/.npmignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | accounts 3 | docs 4 | coverage 5 | yarn* 6 | package-lock.json 7 | .prettierignore 8 | example.html 9 | report_api_coverage.mjs 10 | scripts 11 | dist/example 12 | dist/test -------------------------------------------------------------------------------- /test-data/message/dkimchecks-2022-09-28/alice@delta.blinzeln.de/alice@yandex.ru: -------------------------------------------------------------------------------- 1 | Authentication-Results: iva4-143b1447cf50.qloud-c.yandex.net; dkim=pass header.i=@yandex.ru 2 | From: 3 | To: 4 | -------------------------------------------------------------------------------- /deltachat_derive/Cargo.toml: -------------------------------------------------------------------------------- 1 | [package] 2 | name = "deltachat_derive" 3 | version = "2.0.0" 4 | edition = "2018" 5 | license = "MPL-2.0" 6 | 7 | [lib] 8 | proc-macro = true 9 | 10 | [dependencies] 11 | syn = "2" 12 | quote = "1" 13 | -------------------------------------------------------------------------------- /test-data/message/text_plain_unspecified.eml: -------------------------------------------------------------------------------- 1 | Message-Id: 2 | Date: Sat, 14 Sep 2019 19:00:13 +0200 3 | From: lmn 4 | To: abc 5 | 6 | This message does not have Content-Type nor Subject. 7 | -------------------------------------------------------------------------------- /test-data/message/dkimchecks-2022-09-28/alice@buzon.uy/alice@delta.blinzeln.de: -------------------------------------------------------------------------------- 1 | From: 2 | To: 3 | Authentication-Results: secure-mailgate.com; auth=pass smtp.auth=91.203.111.88@webbox222.server-home.org 4 | -------------------------------------------------------------------------------- /test-data/message/dkimchecks-2022-09-28/alice@e.email/forged-authres-added@example.com: -------------------------------------------------------------------------------- 1 | From: forged-authres-added@example.com 2 | Authentication-Results: mail2.ecloud.global; 3 | Authentication-Results: aaa.com; dkim=pass header.i=@example.com 4 | -------------------------------------------------------------------------------- /scripts/make-rpc-testenv.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | set -euo pipefail 3 | 4 | tox -c deltachat-rpc-client -e py --devenv venv 5 | venv/bin/pip install --upgrade pip 6 | cargo install --locked --path deltachat-rpc-server/ --root "$PWD/venv" --debug 7 | -------------------------------------------------------------------------------- /test-data/message/dkimchecks-2022-09-28/alice@delta.blinzeln.de/alice@hotmail.com: -------------------------------------------------------------------------------- 1 | ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=none; dmarc=none; 2 | dkim=none; arc=none 3 | From: 4 | To: 5 | -------------------------------------------------------------------------------- /test-data/message/dkimchecks-2022-09-28/alice@delta.blinzeln.de/alice@mail.ru: -------------------------------------------------------------------------------- 1 | From: 2 | To: 3 | Authentication-Results: smtpng1.m.smailru.net; auth=pass smtp.auth=alice@mail.ru smtp.mailfrom=alice@mail.ru 4 | -------------------------------------------------------------------------------- /test-data/message/dkimchecks-2022-09-28/alice@delta.blinzeln.de/alice@outlook.com: -------------------------------------------------------------------------------- 1 | ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=none; dmarc=none; 2 | dkim=none; arc=none 3 | From: 4 | To: 5 | -------------------------------------------------------------------------------- /test-data/message/dkimchecks-2022-09-28/alice@mailo.com/alice@delta.blinzeln.de: -------------------------------------------------------------------------------- 1 | From: 2 | To: 3 | Authentication-Results: secure-mailgate.com; auth=pass smtp.auth=91.203.111.88@webbox222.server-home.org 4 | -------------------------------------------------------------------------------- /test-data/message/dkimchecks-2022-09-28/alice@disroot.org/alice@delta.blinzeln.de: -------------------------------------------------------------------------------- 1 | From: 2 | To: 3 | Authentication-Results: secure-mailgate.com; auth=pass smtp.auth=91.203.111.88@webbox222.server-home.org 4 | -------------------------------------------------------------------------------- /test-data/message/dkimchecks-2022-09-28/alice@riseup.net/alice@delta.blinzeln.de: -------------------------------------------------------------------------------- 1 | From: 2 | To: bot 3 | Authentication-Results: secure-mailgate.com; auth=pass smtp.auth=91.203.111.88@webbox222.server-home.org 4 | -------------------------------------------------------------------------------- /format-flowed/Cargo.toml: -------------------------------------------------------------------------------- 1 | [package] 2 | name = "format-flowed" 3 | version = "1.0.0" 4 | description = "format=flowed support" 5 | edition = "2021" 6 | license = "MPL-2.0" 7 | 8 | keywords = ["email"] 9 | categories = ["email"] 10 | 11 | [dependencies] 12 | -------------------------------------------------------------------------------- /test-data/message/dkimchecks-2022-09-28/alice@buzon.uy/forged-authres-added@example.com: -------------------------------------------------------------------------------- 1 | From: forged-authres-added@example.com 2 | Authentication-Results: aaa.com; dkim=pass header.i=@example.com 3 | Authentication-Results: aaa.com; dkim=pass header.i=@example.com 4 | -------------------------------------------------------------------------------- /test-data/message/dkimchecks-2022-09-28/alice@buzon.uy/alice@ik.me: -------------------------------------------------------------------------------- 1 | Authentication-Results: mail.buzon.uy; 2 | dkim=pass (1024-bit key; secure) header.d=ik.me header.i=@ik.me header.b="EWWQpVZX"; 3 | dkim-atps=neutral 4 | From: 5 | To: 6 | -------------------------------------------------------------------------------- /test-data/message/dkimchecks-2022-09-28/alice@disroot.org/forged-authres-added@example.com: -------------------------------------------------------------------------------- 1 | From: forged-authres-added@example.com 2 | Authentication-Results: aaa.com; dkim=pass header.i=@example.com 3 | Authentication-Results: aaa.com; dkim=pass header.i=@example.com 4 | -------------------------------------------------------------------------------- /test-data/message/dkimchecks-2022-09-28/alice@mail.ru/alice@delta.blinzeln.de: -------------------------------------------------------------------------------- 1 | Authentication-Results: mxs.mail.ru; spf=none () smtp.mailfrom=alice@delta.blinzeln.de smtp.helo=nx170.node02.secure-mailgate.com 2 | From: 3 | To: 4 | -------------------------------------------------------------------------------- /test-data/message/dkimchecks-2022-09-28/alice@mailo.com/forged-authres-added@example.com: -------------------------------------------------------------------------------- 1 | From: forged-authres-added@example.com 2 | Authentication-Results: aaa.com; dkim=pass header.i=@example.com 3 | Authentication-Results: aaa.com; dkim=pass header.i=@example.com 4 | -------------------------------------------------------------------------------- /test-data/message/dkimchecks-2022-09-28/alice@riseup.net/forged-authres-added@example.com: -------------------------------------------------------------------------------- 1 | From: forged-authres-added@example.com 2 | Authentication-Results: aaa.com; dkim=pass header.i=@example.com 3 | Authentication-Results: aaa.com; dkim=pass header.i=@example.com 4 | -------------------------------------------------------------------------------- /scripts/codespell.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | codespell \ 3 | --skip './test-data,./.git,node_modules,.mypy_cache,./src/provider/data.rs,.tox,site-packages,target,Cargo.lock,*.js.map,package-lock.json,./proptest-regressions' \ 4 | --ignore-words-list crate,keypair,keypairs,iif 5 | -------------------------------------------------------------------------------- /test-data/message/dkimchecks-2022-09-28/alice@buzon.uy/alice@mail.de: -------------------------------------------------------------------------------- 1 | Authentication-Results: mail.buzon.uy; 2 | dkim=pass (2048-bit key; secure) header.d=mail.de header.i=@mail.de header.b="18cRkjHf"; 3 | dkim-atps=neutral 4 | From: 5 | To: 6 | -------------------------------------------------------------------------------- /test-data/message/dkimchecks-2022-09-28/alice@disroot.org/alice@ik.me: -------------------------------------------------------------------------------- 1 | Authentication-Results: disroot.org; 2 | dkim=pass (1024-bit key; unprotected) header.d=ik.me header.i=@ik.me header.b="YBLXQ2kp"; 3 | dkim-atps=neutral 4 | From: 5 | To: 6 | -------------------------------------------------------------------------------- /test-data/message/dkimchecks-2022-09-28/alice@mail.de/alice@ik.me: -------------------------------------------------------------------------------- 1 | Authentication-Results: mxpostfix01.mail.de; 2 | dkim=pass (1024-bit key; secure) header.d=ik.me header.i=@ik.me header.b="NKw1/mI8"; 3 | dkim-atps=neutral 4 | From: 5 | To: bot 6 | -------------------------------------------------------------------------------- /test-data/message/dkimchecks-2022-09-28/alice@buzon.uy/alice@aol.com: -------------------------------------------------------------------------------- 1 | Authentication-Results: mail.buzon.uy; 2 | dkim=pass (2048-bit key; unprotected) header.d=aol.com header.i=@aol.com header.b="sjmqxpKe"; 3 | dkim-atps=neutral 4 | From: 5 | To: 6 | -------------------------------------------------------------------------------- /test-data/message/dkimchecks-2022-09-28/alice@buzon.uy/alice@posteo.de: -------------------------------------------------------------------------------- 1 | Authentication-Results: mail.buzon.uy; 2 | dkim=pass (2048-bit key; secure) header.d=posteo.de header.i=@posteo.de header.b="AyOucyBM"; 3 | dkim-atps=neutral 4 | From: 5 | To: 6 | -------------------------------------------------------------------------------- /test-data/message/dkimchecks-2022-09-28/alice@disroot.org/alice@aol.com: -------------------------------------------------------------------------------- 1 | Authentication-Results: disroot.org; 2 | dkim=pass (2048-bit key; unprotected) header.d=aol.com header.i=@aol.com header.b="DBDqUGR2"; 3 | dkim-atps=neutral 4 | From: 5 | To: 6 | -------------------------------------------------------------------------------- /test-data/message/dkimchecks-2022-09-28/alice@disroot.org/alice@mail.de: -------------------------------------------------------------------------------- 1 | Authentication-Results: disroot.org; 2 | dkim=pass (2048-bit key; unprotected) header.d=mail.de header.i=@mail.de header.b="3ha9obSK"; 3 | dkim-atps=neutral 4 | From: 5 | To: 6 | -------------------------------------------------------------------------------- /test-data/message/dkimchecks-2022-09-28/alice@buzon.uy/alice@gmail.com: -------------------------------------------------------------------------------- 1 | Authentication-Results: mail.buzon.uy; 2 | dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="Ngf1X5eN"; 3 | dkim-atps=neutral 4 | From: 5 | To: 6 | -------------------------------------------------------------------------------- /test-data/message/dkimchecks-2022-09-28/alice@buzon.uy/alice@mailo.com: -------------------------------------------------------------------------------- 1 | Authentication-Results: mail.buzon.uy; 2 | dkim=pass (1024-bit key; unprotected) header.d=mailo.com header.i=@mailo.com header.b="awx9eOw9"; 3 | dkim-atps=neutral 4 | From: 5 | To: 6 | -------------------------------------------------------------------------------- /test-data/message/dkimchecks-2022-09-28/alice@buzon.uy/alice@riseup.net: -------------------------------------------------------------------------------- 1 | Authentication-Results: mail.buzon.uy; 2 | dkim=pass (1024-bit key; secure) header.d=riseup.net header.i=@riseup.net header.b="eQhRD1BM"; 3 | dkim-atps=neutral 4 | From: 5 | To: 6 | -------------------------------------------------------------------------------- /test-data/message/dkimchecks-2022-09-28/alice@buzon.uy/alice@yahoo.com: -------------------------------------------------------------------------------- 1 | Authentication-Results: mail.buzon.uy; 2 | dkim=pass (2048-bit key; unprotected) header.d=yahoo.com header.i=@yahoo.com header.b="a1T2PpDI"; 3 | dkim-atps=neutral 4 | From: 5 | To: 6 | -------------------------------------------------------------------------------- /test-data/message/dkimchecks-2022-09-28/alice@disroot.org/alice@buzon.uy: -------------------------------------------------------------------------------- 1 | Authentication-Results: disroot.org; 2 | dkim=pass (2048-bit key; unprotected) header.d=buzon.uy header.i=@buzon.uy header.b="VVA3HpHe"; 3 | dkim-atps=neutral 4 | From: 5 | To: 6 | -------------------------------------------------------------------------------- /test-data/message/dkimchecks-2022-09-28/alice@mail.de/alice@aol.com: -------------------------------------------------------------------------------- 1 | Authentication-Results: mxpostfix01.mail.de; 2 | dkim=pass (2048-bit key; unprotected) header.d=aol.com header.i=@aol.com header.b="cMT1rpDE"; 3 | dkim-atps=neutral 4 | From: 5 | To: bot 6 | -------------------------------------------------------------------------------- /deltachat-ffi/deltachat.pc.in: -------------------------------------------------------------------------------- 1 | prefix={prefix} 2 | libdir={libdir} 3 | includedir={includedir} 4 | 5 | Name: {name} 6 | Description: {description} 7 | URL: {url} 8 | Version: {version} 9 | Cflags: -I${{includedir}} 10 | Libs: -L${{libdir}} -ldeltachat 11 | Libs.private: {libs_priv} 12 | -------------------------------------------------------------------------------- /test-data/message/dkimchecks-2022-09-28/alice@buzon.uy/alice@disroot.org: -------------------------------------------------------------------------------- 1 | Authentication-Results: mail.buzon.uy; 2 | dkim=pass (2048-bit key; secure) header.d=disroot.org header.i=@disroot.org header.b="L9SmOHOj"; 3 | dkim-atps=neutral 4 | From: 5 | To: 6 | -------------------------------------------------------------------------------- /test-data/message/dkimchecks-2022-09-28/alice@buzon.uy/alice@icloud.com: -------------------------------------------------------------------------------- 1 | Authentication-Results: mail.buzon.uy; 2 | dkim=pass (2048-bit key; unprotected) header.d=icloud.com header.i=@icloud.com header.b="rAXD4xVN"; 3 | dkim-atps=neutral 4 | From: 5 | To: 6 | -------------------------------------------------------------------------------- /test-data/message/dkimchecks-2022-09-28/alice@disroot.org/alice@gmail.com: -------------------------------------------------------------------------------- 1 | Authentication-Results: disroot.org; 2 | dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="lxlrOeGY"; 3 | dkim-atps=neutral 4 | From: 5 | To: 6 | -------------------------------------------------------------------------------- /test-data/message/dkimchecks-2022-09-28/alice@disroot.org/alice@posteo.de: -------------------------------------------------------------------------------- 1 | Authentication-Results: disroot.org; 2 | dkim=pass (2048-bit key; unprotected) header.d=posteo.de header.i=@posteo.de header.b="R67Ab9Vj"; 3 | dkim-atps=neutral 4 | From: 5 | To: 6 | -------------------------------------------------------------------------------- /test-data/message/dkimchecks-2022-09-28/alice@mail.de/alice@buzon.uy: -------------------------------------------------------------------------------- 1 | Authentication-Results: mxpostfix02.mail.de; 2 | dkim=pass (2048-bit key; unprotected) header.d=buzon.uy header.i=@buzon.uy header.b="apWsl1gh"; 3 | dkim-atps=neutral 4 | From: 5 | To: bot 6 | -------------------------------------------------------------------------------- /test-data/message/dkimchecks-2022-09-28/alice@mail.de/alice@posteo.de: -------------------------------------------------------------------------------- 1 | Authentication-Results: mxpostfix03.mail.de; 2 | dkim=pass (2048-bit key; secure) header.d=posteo.de header.i=@posteo.de header.b="q9Kd4g/Y"; 3 | dkim-atps=neutral 4 | From: 5 | To: bot 6 | -------------------------------------------------------------------------------- /fuzz/fuzz_targets/fuzz_dateparse.rs: -------------------------------------------------------------------------------- 1 | use bolero::check; 2 | 3 | fn main() { 4 | check!().for_each(|data: &[u8]| match std::str::from_utf8(data) { 5 | Ok(input) => { 6 | mailparse::dateparse(input).ok(); 7 | } 8 | Err(_err) => {} 9 | }); 10 | } 11 | -------------------------------------------------------------------------------- /scripts/manual_remote_tests.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -xe 3 | 4 | JOB=${1:?need to specify 'rust' or 'python'} 5 | BRANCH="$(git branch | grep \* | cut -d ' ' -f2)" 6 | REPONAME="$(basename $(git rev-parse --show-toplevel))" 7 | 8 | time bash "scripts/remote_tests_$JOB.sh" "$USER-$BRANCH-$REPONAME" 9 | -------------------------------------------------------------------------------- /test-data/message/dkimchecks-2022-09-28/alice@disroot.org/alice@icloud.com: -------------------------------------------------------------------------------- 1 | Authentication-Results: disroot.org; 2 | dkim=pass (2048-bit key; unprotected) header.d=icloud.com header.i=@icloud.com header.b="kD59vbQH"; 3 | dkim-atps=neutral 4 | From: 5 | To: 6 | -------------------------------------------------------------------------------- /test-data/message/dkimchecks-2022-09-28/alice@disroot.org/alice@riseup.net: -------------------------------------------------------------------------------- 1 | Authentication-Results: disroot.org; 2 | dkim=pass (1024-bit key; unprotected) header.d=riseup.net header.i=@riseup.net header.b="fFYxwl1W"; 3 | dkim-atps=neutral 4 | From: 5 | To: 6 | -------------------------------------------------------------------------------- /test-data/message/dkimchecks-2022-09-28/alice@mail.de/alice@disroot.org: -------------------------------------------------------------------------------- 1 | Authentication-Results: mxpostfix03.mail.de; 2 | dkim=pass (2048-bit key; secure) header.d=disroot.org header.i=@disroot.org header.b="h1fPYPvx"; 3 | dkim-atps=neutral 4 | From: 5 | To: bot 6 | -------------------------------------------------------------------------------- /test-data/message/dkimchecks-2022-09-28/alice@mail.de/alice@gmail.com: -------------------------------------------------------------------------------- 1 | Authentication-Results: mxpostfix02.mail.de; 2 | dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="SQcyDRqs"; 3 | dkim-atps=neutral 4 | From: 5 | To: bot 6 | -------------------------------------------------------------------------------- /test-data/message/dkimchecks-2022-09-28/alice@mail.de/alice@mailo.com: -------------------------------------------------------------------------------- 1 | Authentication-Results: mxpostfix03.mail.de; 2 | dkim=pass (1024-bit key; unprotected) header.d=mailo.com header.i=@mailo.com header.b="WNL8tBaQ"; 3 | dkim-atps=neutral 4 | From: 5 | To: bot 6 | -------------------------------------------------------------------------------- /test-data/message/dkimchecks-2022-09-28/alice@mail.de/alice@riseup.net: -------------------------------------------------------------------------------- 1 | Authentication-Results: mxpostfix02.mail.de; 2 | dkim=pass (1024-bit key; secure) header.d=riseup.net header.i=@riseup.net header.b="kACrHe55"; 3 | dkim-atps=neutral 4 | From: 5 | To: bot 6 | -------------------------------------------------------------------------------- /test-data/message/dkimchecks-2022-09-28/alice@mail.de/alice@yahoo.com: -------------------------------------------------------------------------------- 1 | Authentication-Results: mxpostfix01.mail.de; 2 | dkim=pass (2048-bit key; unprotected) header.d=yahoo.com header.i=@yahoo.com header.b="si+QZzxa"; 3 | dkim-atps=neutral 4 | From: 5 | To: bot 6 | -------------------------------------------------------------------------------- /test-data/message/dkimchecks-2022-09-28/alice@mail.de/alice@icloud.com: -------------------------------------------------------------------------------- 1 | Authentication-Results: mxpostfix03.mail.de; 2 | dkim=pass (2048-bit key; unprotected) header.d=icloud.com header.i=@icloud.com header.b="JhbBMJeY"; 3 | dkim-atps=neutral 4 | From: 5 | To: bot 6 | -------------------------------------------------------------------------------- /test-data/message/dkimchecks-2022-09-28/alice@aol.com/alice@mail.ru: -------------------------------------------------------------------------------- 1 | Authentication-Results: atlas104.aol.mail.bf1.yahoo.com; 2 | dkim=pass header.i=@mail.ru header.s=mail4; 3 | spf=pass smtp.mailfrom=mail.ru; 4 | dmarc=pass(p=REJECT) header.from=mail.ru; 5 | From: 6 | To: 7 | -------------------------------------------------------------------------------- /test-data/message/dkimchecks-2022-09-28/alice@yahoo.com/alice@ik.me: -------------------------------------------------------------------------------- 1 | Authentication-Results: atlas322.free.mail.ne1.yahoo.com; 2 | dkim=pass header.i=@ik.me header.s=20200325; 3 | spf=pass smtp.mailfrom=ik.me; 4 | dmarc=pass(p=REJECT) header.from=ik.me; 5 | From: 6 | To: 7 | -------------------------------------------------------------------------------- /deltachat-jsonrpc/typescript/src/lib.ts: -------------------------------------------------------------------------------- 1 | export * as RPC from "../generated/jsonrpc.js"; 2 | export * as T from "../generated/types.js"; 3 | export { RawClient } from "../generated/client.js"; 4 | export * from "./client.js"; 5 | export * as yerpc from "yerpc"; 6 | export { C } from "../generated/constants.js"; 7 | -------------------------------------------------------------------------------- /test-data/message/dkimchecks-2022-09-28/alice@aol.com/alice@buzon.uy: -------------------------------------------------------------------------------- 1 | Authentication-Results: atlas106.aol.mail.ne1.yahoo.com; 2 | dkim=pass header.i=@buzon.uy header.s=2019; 3 | spf=pass smtp.mailfrom=buzon.uy; 4 | dmarc=pass(p=REJECT) header.from=buzon.uy; 5 | From: 6 | To: 7 | -------------------------------------------------------------------------------- /test-data/message/dkimchecks-2022-09-28/alice@aol.com/alice@delta.blinzeln.de: -------------------------------------------------------------------------------- 1 | Authentication-Results: atlas206.aol.mail.ne1.yahoo.com; 2 | dkim=unknown; 3 | spf=none smtp.mailfrom=delta.blinzeln.de; 4 | dmarc=unknown header.from=delta.blinzeln.de; 5 | From: 6 | To: 7 | -------------------------------------------------------------------------------- /test-data/message/dkimchecks-2022-09-28/alice@aol.com/alice@yandex.ru: -------------------------------------------------------------------------------- 1 | Authentication-Results: atlas114.aol.mail.bf1.yahoo.com; 2 | dkim=pass header.i=@yandex.ru header.s=mail; 3 | spf=pass smtp.mailfrom=yandex.ru; 4 | dmarc=pass(p=NONE) header.from=yandex.ru; 5 | From: 6 | To: 7 | -------------------------------------------------------------------------------- /test-data/message/dkimchecks-2022-09-28/alice@riseup.net/alice@ik.me: -------------------------------------------------------------------------------- 1 | Authentication-Results: mx1.riseup.net; 2 | dkim=pass (1024-bit key; secure) header.d=ik.me header.i=@ik.me header.a=rsa-sha256 header.s=20200325 header.b=pxpE0vb9; 3 | dkim-atps=neutral 4 | From: 5 | To: bot 6 | -------------------------------------------------------------------------------- /test-data/message/dkimchecks-2022-09-28/alice@yahoo.com/alice@mail.ru: -------------------------------------------------------------------------------- 1 | Authentication-Results: atlas119.free.mail.ne1.yahoo.com; 2 | dkim=pass header.i=@mail.ru header.s=mail4; 3 | spf=pass smtp.mailfrom=mail.ru; 4 | dmarc=pass(p=REJECT) header.from=mail.ru; 5 | From: 6 | To: 7 | -------------------------------------------------------------------------------- /test-data/message/dkimchecks-2022-09-28/alice@zohomail.eu/forged-authres-added@example.com: -------------------------------------------------------------------------------- 1 | Authentication-Results: mx.zohomail.eu; 2 | From: forged-authres-added@example.com 3 | Authentication-Results: aaa.com; dkim=pass header.i=@example.com 4 | Authentication-Results: aaa.com; dkim=pass header.i=@example.com 5 | -------------------------------------------------------------------------------- /test-data/message/dkimchecks-2022-09-28/alice@aol.com/alice@ik.me: -------------------------------------------------------------------------------- 1 | Authentication-Results: atlas-production.v2-mail-prod1-gq1.omega.yahoo.com; 2 | dkim=pass header.i=@ik.me header.s=20200325; 3 | spf=pass smtp.mailfrom=ik.me; 4 | dmarc=pass(p=REJECT) header.from=ik.me; 5 | From: 6 | To: 7 | -------------------------------------------------------------------------------- /test-data/message/dkimchecks-2022-09-28/alice@aol.com/alice@mailo.com: -------------------------------------------------------------------------------- 1 | Authentication-Results: atlas211.aol.mail.bf1.yahoo.com; 2 | dkim=pass header.i=@mailo.com header.s=mailo; 3 | spf=pass smtp.mailfrom=mailo.com; 4 | dmarc=pass(p=NONE) header.from=mailo.com; 5 | From: 6 | To: 7 | -------------------------------------------------------------------------------- /test-data/message/dkimchecks-2022-09-28/alice@yahoo.com/alice@delta.blinzeln.de: -------------------------------------------------------------------------------- 1 | Authentication-Results: atlas324.free.mail.ne1.yahoo.com; 2 | dkim=unknown; 3 | spf=none smtp.mailfrom=delta.blinzeln.de; 4 | dmarc=unknown header.from=delta.blinzeln.de; 5 | From: 6 | To: 7 | -------------------------------------------------------------------------------- /test-data/message/dkimchecks-2022-09-28/alice@yahoo.com/alice@posteo.de: -------------------------------------------------------------------------------- 1 | Authentication-Results: atlas106.free.mail.bf1.yahoo.com; 2 | dkim=pass header.i=@posteo.de header.s=2017; 3 | spf=pass smtp.mailfrom=posteo.de; 4 | dmarc=pass(p=NONE) header.from=posteo.de; 5 | From: 6 | To: 7 | -------------------------------------------------------------------------------- /test-data/message/dkimchecks-2022-09-28/alice@yahoo.com/alice@yandex.ru: -------------------------------------------------------------------------------- 1 | Authentication-Results: atlas313.free.mail.bf1.yahoo.com; 2 | dkim=pass header.i=@yandex.ru header.s=mail; 3 | spf=pass smtp.mailfrom=yandex.ru; 4 | dmarc=pass(p=NONE) header.from=yandex.ru; 5 | From: 6 | To: 7 | -------------------------------------------------------------------------------- /test-data/message/dkimchecks-2022-09-28/alice@mail.de/alice@delta.blinzeln.de: -------------------------------------------------------------------------------- 1 | Authentication-Results: mxpostfix01.mail.de; dkim=none; dkim-atps=neutral 2 | From: 3 | To: bot 4 | Authentication-Results: secure-mailgate.com; auth=pass smtp.auth=91.203.111.88@webbox222.server-home.org 5 | -------------------------------------------------------------------------------- /test-data/message/dkimchecks-2022-09-28/alice@riseup.net/alice@aol.com: -------------------------------------------------------------------------------- 1 | Authentication-Results: mx1.riseup.net; 2 | dkim=pass (2048-bit key; unprotected) header.d=aol.com header.i=@aol.com header.a=rsa-sha256 header.s=a2048 header.b=Aei3fiG8; 3 | dkim-atps=neutral 4 | From: 5 | To: bot 6 | -------------------------------------------------------------------------------- /test-data/message/dkimchecks-2022-09-28/alice@riseup.net/alice@mail.de: -------------------------------------------------------------------------------- 1 | Authentication-Results: mx1.riseup.net; 2 | dkim=pass (2048-bit key; secure) header.d=mail.de header.i=@mail.de header.a=rsa-sha256 header.s=mailde202009 header.b=aBcwisze; 3 | dkim-atps=neutral 4 | From: 5 | To: bot 6 | -------------------------------------------------------------------------------- /test-data/message/dkimchecks-2022-09-28/alice@riseup.net/alice@posteo.de: -------------------------------------------------------------------------------- 1 | Authentication-Results: mx1.riseup.net; 2 | dkim=pass (2048-bit key; secure) header.d=posteo.de header.i=@posteo.de header.a=rsa-sha256 header.s=2017 header.b=jSdje1Vp; 3 | dkim-atps=neutral 4 | From: 5 | To: bot 6 | -------------------------------------------------------------------------------- /test-data/message/dkimchecks-2022-09-28/alice@mail.ru/forged-authres-added@example.com: -------------------------------------------------------------------------------- 1 | Authentication-Results: mxs.mail.ru; spf=none () smtp.mailfrom=alice@delta.blinzeln.de smtp.helo=nx170.node02.secure-mailgate.com 2 | From: forged-authres-added@example.com 3 | Authentication-Results: aaa.com; dkim=pass header.i=@example.com 4 | -------------------------------------------------------------------------------- /test-data/message/dkimchecks-2022-09-28/alice@riseup.net/alice@buzon.uy: -------------------------------------------------------------------------------- 1 | Authentication-Results: mx1.riseup.net; 2 | dkim=pass (2048-bit key; unprotected) header.d=buzon.uy header.i=@buzon.uy header.a=rsa-sha256 header.s=2019 header.b=gc8qGJWd; 3 | dkim-atps=neutral 4 | From: 5 | To: bot 6 | -------------------------------------------------------------------------------- /src/release.rs: -------------------------------------------------------------------------------- 1 | //! DC release info. 2 | 3 | use chrono::NaiveDate; 4 | use std::sync::LazyLock; 5 | 6 | const DATE_STR: &str = include_str!("../release-date.in"); 7 | 8 | /// Last release date. 9 | pub static DATE: LazyLock = 10 | LazyLock::new(|| NaiveDate::parse_from_str(DATE_STR, "%Y-%m-%d").unwrap()); 11 | -------------------------------------------------------------------------------- /test-data/message/dkimchecks-2022-09-28/alice@aol.com/alice@disroot.org: -------------------------------------------------------------------------------- 1 | Authentication-Results: atlas210.aol.mail.bf1.yahoo.com; 2 | dkim=pass header.i=@disroot.org header.s=mail; 3 | spf=pass smtp.mailfrom=disroot.org; 4 | dmarc=pass(p=QUARANTINE) header.from=disroot.org; 5 | From: 6 | To: 7 | -------------------------------------------------------------------------------- /test-data/message/dkimchecks-2022-09-28/alice@aol.com/alice@posteo.de: -------------------------------------------------------------------------------- 1 | Authentication-Results: atlas-production.v2-mail-prod1-gq1.omega.yahoo.com; 2 | dkim=pass header.i=@posteo.de header.s=2017; 3 | spf=pass smtp.mailfrom=posteo.de; 4 | dmarc=pass(p=NONE) header.from=posteo.de; 5 | From: 6 | To: 7 | -------------------------------------------------------------------------------- /test-data/message/dkimchecks-2022-09-28/alice@disroot.org/alice@mailo.com: -------------------------------------------------------------------------------- 1 | Authentication-Results: disroot.org; 2 | dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=mailo.com header.i=@mailo.com header.b="WgsA5pwT"; 3 | dkim-atps=neutral 4 | From: 5 | To: 6 | -------------------------------------------------------------------------------- /test-data/message/dkimchecks-2022-09-28/alice@riseup.net/alice@disroot.org: -------------------------------------------------------------------------------- 1 | Authentication-Results: mx1.riseup.net; 2 | dkim=pass (2048-bit key; secure) header.d=disroot.org header.i=@disroot.org header.a=rsa-sha256 header.s=mail header.b=NtiGkBD2; 3 | dkim-atps=neutral 4 | From: 5 | To: bot 6 | -------------------------------------------------------------------------------- /test-data/message/dkimchecks-2022-09-28/alice@riseup.net/alice@gmail.com: -------------------------------------------------------------------------------- 1 | Authentication-Results: mx1.riseup.net; 2 | dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256 header.s=20210112 header.b=kUOVASbW; 3 | dkim-atps=neutral 4 | From: 5 | To: bot 6 | -------------------------------------------------------------------------------- /test-data/message/dkimchecks-2022-09-28/alice@riseup.net/alice@mailo.com: -------------------------------------------------------------------------------- 1 | Authentication-Results: mx1.riseup.net; 2 | dkim=pass (1024-bit key; unprotected) header.d=mailo.com header.i=@mailo.com header.a=rsa-sha256 header.s=mailo header.b=ehXZZkUs; 3 | dkim-atps=neutral 4 | From: 5 | To: bot 6 | -------------------------------------------------------------------------------- /test-data/message/dkimchecks-2022-09-28/alice@yahoo.com/alice@buzon.uy: -------------------------------------------------------------------------------- 1 | Authentication-Results: atlas-production.v2-mail-prod1-gq1.omega.yahoo.com; 2 | dkim=pass header.i=@buzon.uy header.s=2019; 3 | spf=pass smtp.mailfrom=buzon.uy; 4 | dmarc=pass(p=REJECT) header.from=buzon.uy; 5 | From: 6 | To: 7 | -------------------------------------------------------------------------------- /test-data/message/dkimchecks-2022-09-28/alice@hotmail.com/alice@ik.me: -------------------------------------------------------------------------------- 1 | Authentication-Results: spf=pass (sender IP is 83.166.143.174) 2 | smtp.mailfrom=ik.me; dkim=pass (signature was verified) 3 | header.d=ik.me;dmarc=pass action=none header.from=ik.me;compauth=pass 4 | reason=100 5 | From: 6 | To: 7 | -------------------------------------------------------------------------------- /test-data/message/dkimchecks-2022-09-28/alice@outlook.com/alice@ik.me: -------------------------------------------------------------------------------- 1 | Authentication-Results: spf=pass (sender IP is 83.166.143.172) 2 | smtp.mailfrom=ik.me; dkim=pass (signature was verified) 3 | header.d=ik.me;dmarc=pass action=none header.from=ik.me;compauth=pass 4 | reason=100 5 | From: 6 | To: 7 | -------------------------------------------------------------------------------- /test-data/message/dkimchecks-2022-09-28/alice@riseup.net/alice@icloud.com: -------------------------------------------------------------------------------- 1 | Authentication-Results: mx1.riseup.net; 2 | dkim=pass (2048-bit key; unprotected) header.d=icloud.com header.i=@icloud.com header.a=rsa-sha256 header.s=1a1hai header.b=wns6PtC+; 3 | dkim-atps=neutral 4 | From: 5 | To: bot 6 | -------------------------------------------------------------------------------- /test-data/message/dkimchecks-2022-09-28/alice@yahoo.com/alice@disroot.org: -------------------------------------------------------------------------------- 1 | Authentication-Results: atlas108.free.mail.bf1.yahoo.com; 2 | dkim=pass header.i=@disroot.org header.s=mail; 3 | spf=pass smtp.mailfrom=disroot.org; 4 | dmarc=pass(p=QUARANTINE) header.from=disroot.org; 5 | From: 6 | To: 7 | -------------------------------------------------------------------------------- /test-data/message/dkimchecks-2022-09-28/alice@yahoo.com/alice@gmail.com: -------------------------------------------------------------------------------- 1 | Authentication-Results: atlas216.free.mail.bf1.yahoo.com; 2 | dkim=pass header.i=@gmail.com header.s=20210112; 3 | spf=pass smtp.mailfrom=gmail.com; 4 | dmarc=pass(p=NONE,sp=QUARANTINE) header.from=gmail.com; 5 | From: 6 | To: 7 | -------------------------------------------------------------------------------- /test-data/message/dkimchecks-2022-09-28/alice@yahoo.com/alice@mail.de: -------------------------------------------------------------------------------- 1 | Authentication-Results: atlas-production.v2-mail-prod1-gq1.omega.yahoo.com; 2 | dkim=pass header.i=@mail.de header.s=mailde202009; 3 | spf=pass smtp.mailfrom=mail.de; 4 | dmarc=pass(p=NONE) header.from=mail.de; 5 | From: 6 | To: 7 | -------------------------------------------------------------------------------- /test-data/message/dkimchecks-2022-09-28/alice@aol.com/alice@icloud.com: -------------------------------------------------------------------------------- 1 | Authentication-Results: atlas101.aol.mail.bf1.yahoo.com; 2 | dkim=pass header.i=@icloud.com header.s=1a1hai; 3 | spf=pass smtp.mailfrom=icloud.com; 4 | dmarc=pass(p=QUARANTINE,sp=QUARANTINE) header.from=icloud.com; 5 | From: 6 | To: 7 | -------------------------------------------------------------------------------- /test-data/message/dkimchecks-2022-09-28/alice@mail.de/forged-authres-added@example.com: -------------------------------------------------------------------------------- 1 | Authentication-Results: mxpostfix01.mail.de; dkim=none; dkim-atps=neutral 2 | From: forged-authres-added@example.com 3 | Authentication-Results: aaa.com; dkim=pass header.i=@example.com 4 | Authentication-Results: aaa.com; dkim=pass header.i=@example.com 5 | -------------------------------------------------------------------------------- /test-data/message/dkimchecks-2022-09-28/alice@yahoo.com/alice@riseup.net: -------------------------------------------------------------------------------- 1 | Authentication-Results: atlas-production.v2-mail-prod1-gq1.omega.yahoo.com; 2 | dkim=pass header.i=@riseup.net header.s=squak; 3 | spf=pass smtp.mailfrom=riseup.net; 4 | dmarc=pass(p=NONE) header.from=riseup.net; 5 | From: 6 | To: 7 | -------------------------------------------------------------------------------- /test-data/message/dkimchecks-2022-09-28/alice@hotmail.com/alice@aol.com: -------------------------------------------------------------------------------- 1 | Authentication-Results: spf=pass (sender IP is 77.238.178.97) 2 | smtp.mailfrom=aol.com; dkim=pass (signature was verified) 3 | header.d=aol.com;dmarc=pass action=none header.from=aol.com;compauth=pass 4 | reason=100 5 | From: 6 | To: 7 | -------------------------------------------------------------------------------- /test-data/message/dkimchecks-2022-09-28/alice@hotmail.com/alice@mail.de: -------------------------------------------------------------------------------- 1 | Authentication-Results: spf=pass (sender IP is 62.201.172.25) 2 | smtp.mailfrom=mail.de; dkim=pass (signature was verified) 3 | header.d=mail.de;dmarc=pass action=none header.from=mail.de;compauth=pass 4 | reason=100 5 | From: 6 | To: 7 | -------------------------------------------------------------------------------- /test-data/message/dkimchecks-2022-09-28/alice@hotmail.com/alice@mail.ru: -------------------------------------------------------------------------------- 1 | Authentication-Results: spf=pass (sender IP is 94.100.181.251) 2 | smtp.mailfrom=mail.ru; dkim=pass (signature was verified) 3 | header.d=mail.ru;dmarc=pass action=none header.from=mail.ru;compauth=pass 4 | reason=100 5 | From: 6 | To: 7 | -------------------------------------------------------------------------------- /test-data/message/dkimchecks-2022-09-28/alice@outlook.com/alice@mail.de: -------------------------------------------------------------------------------- 1 | Authentication-Results: spf=pass (sender IP is 62.201.172.25) 2 | smtp.mailfrom=mail.de; dkim=pass (signature was verified) 3 | header.d=mail.de;dmarc=pass action=none header.from=mail.de;compauth=pass 4 | reason=100 5 | From: 6 | To: 7 | -------------------------------------------------------------------------------- /test-data/message/dkimchecks-2022-09-28/alice@outlook.com/alice@mail.ru: -------------------------------------------------------------------------------- 1 | Authentication-Results: spf=pass (sender IP is 94.100.181.251) 2 | smtp.mailfrom=mail.ru; dkim=pass (signature was verified) 3 | header.d=mail.ru;dmarc=pass action=none header.from=mail.ru;compauth=pass 4 | reason=100 5 | From: 6 | To: 7 | -------------------------------------------------------------------------------- /test-data/message/text_html.eml: -------------------------------------------------------------------------------- 1 | Subject: mime-modified test 2 | Message-ID: 12345@testrun.org 3 | Date: Sat, 07 Dec 2019 19:00:27 +0000 4 | To: recp@testrun.org 5 | From: sender@testrun.org 6 | Content-Type: text/html; charset=utf-8 7 | 8 | 9 | 10 |

mime-modified set; simplify is always regarded as lossy.

11 | -------------------------------------------------------------------------------- /python/doc/cffi/lapi.rst: -------------------------------------------------------------------------------- 1 | Low Level API Reference 2 | ======================= 3 | 4 | For full doxygen-generated C-docs, defines and functions please checkout 5 | 6 | https://c.delta.chat 7 | 8 | 9 | Python low-level capi calls 10 | --------------------------- 11 | 12 | 13 | .. automodule:: deltachat.capi.lib 14 | :members: 15 | 16 | -------------------------------------------------------------------------------- /test-data/message/dkimchecks-2022-09-28/alice@hotmail.com/alice@yandex.ru: -------------------------------------------------------------------------------- 1 | Authentication-Results: spf=pass (sender IP is 77.88.28.108) 2 | smtp.mailfrom=yandex.ru; dkim=pass (signature was verified) 3 | header.d=yandex.ru;dmarc=pass action=none header.from=yandex.ru;compauth=pass 4 | reason=100 5 | From: 6 | To: 7 | -------------------------------------------------------------------------------- /python/doc/_static/custom.css: -------------------------------------------------------------------------------- 1 | /* customizations to Alabaster theme . */ 2 | 3 | div.document { 4 | width: 1480px; 5 | } 6 | 7 | div.body { 8 | max-width: 1280px; 9 | } 10 | 11 | div.globaltoc { 12 | font-size: 1.4em; 13 | } 14 | 15 | img.logo { 16 | height: 120px; 17 | } 18 | 19 | div.footer { 20 | display: none; 21 | } 22 | -------------------------------------------------------------------------------- /test-data/message/dkimchecks-2022-09-28/alice@hotmail.com/alice@gmail.com: -------------------------------------------------------------------------------- 1 | Authentication-Results: spf=pass (sender IP is 209.85.221.68) 2 | smtp.mailfrom=gmail.com; dkim=pass (signature was verified) 3 | header.d=gmail.com;dmarc=pass action=none header.from=gmail.com;compauth=pass 4 | reason=100 5 | From: 6 | To: 7 | -------------------------------------------------------------------------------- /test-data/message/dkimchecks-2022-09-28/alice@hotmail.com/alice@icloud.com: -------------------------------------------------------------------------------- 1 | Authentication-Results: spf=pass (sender IP is 17.57.155.16) 2 | smtp.mailfrom=icloud.com; dkim=pass (signature was verified) 3 | header.d=icloud.com;dmarc=pass action=none 4 | header.from=icloud.com;compauth=pass reason=100 5 | From: 6 | To: 7 | -------------------------------------------------------------------------------- /test-data/message/dkimchecks-2022-09-28/alice@hotmail.com/alice@mailo.com: -------------------------------------------------------------------------------- 1 | Authentication-Results: spf=pass (sender IP is 213.182.54.11) 2 | smtp.mailfrom=mailo.com; dkim=pass (signature was verified) 3 | header.d=mailo.com;dmarc=pass action=none header.from=mailo.com;compauth=pass 4 | reason=100 5 | From: 6 | To: 7 | -------------------------------------------------------------------------------- /test-data/message/dkimchecks-2022-09-28/alice@hotmail.com/alice@posteo.de: -------------------------------------------------------------------------------- 1 | Authentication-Results: spf=temperror (sender IP is 185.67.36.66) 2 | smtp.mailfrom=posteo.de; dkim=pass (signature was verified) 3 | header.d=posteo.de;dmarc=pass action=none header.from=posteo.de;compauth=pass 4 | reason=100 5 | From: 6 | To: 7 | -------------------------------------------------------------------------------- /test-data/message/dkimchecks-2022-09-28/alice@hotmail.com/alice@yahoo.com: -------------------------------------------------------------------------------- 1 | Authentication-Results: spf=pass (sender IP is 77.238.176.99) 2 | smtp.mailfrom=yahoo.com; dkim=pass (signature was verified) 3 | header.d=yahoo.com;dmarc=pass action=none header.from=yahoo.com;compauth=pass 4 | reason=100 5 | From: 6 | To: 7 | -------------------------------------------------------------------------------- /test-data/message/dkimchecks-2022-09-28/alice@outlook.com/alice@gmail.com: -------------------------------------------------------------------------------- 1 | Authentication-Results: spf=pass (sender IP is 209.85.128.67) 2 | smtp.mailfrom=gmail.com; dkim=pass (signature was verified) 3 | header.d=gmail.com;dmarc=pass action=none header.from=gmail.com;compauth=pass 4 | reason=100 5 | From: 6 | To: 7 | -------------------------------------------------------------------------------- /test-data/message/dkimchecks-2022-09-28/alice@outlook.com/alice@icloud.com: -------------------------------------------------------------------------------- 1 | Authentication-Results: spf=pass (sender IP is 17.57.155.16) 2 | smtp.mailfrom=icloud.com; dkim=pass (signature was verified) 3 | header.d=icloud.com;dmarc=pass action=none 4 | header.from=icloud.com;compauth=pass reason=100 5 | From: 6 | To: 7 | -------------------------------------------------------------------------------- /test-data/message/dkimchecks-2022-09-28/alice@outlook.com/alice@mailo.com: -------------------------------------------------------------------------------- 1 | Authentication-Results: spf=pass (sender IP is 213.182.54.12) 2 | smtp.mailfrom=mailo.com; dkim=pass (signature was verified) 3 | header.d=mailo.com;dmarc=pass action=none header.from=mailo.com;compauth=pass 4 | reason=100 5 | From: 6 | To: 7 | -------------------------------------------------------------------------------- /test-data/message/dkimchecks-2022-09-28/alice@outlook.com/alice@yahoo.com: -------------------------------------------------------------------------------- 1 | Authentication-Results: spf=pass (sender IP is 77.238.176.206) 2 | smtp.mailfrom=yahoo.com; dkim=pass (signature was verified) 3 | header.d=yahoo.com;dmarc=pass action=none header.from=yahoo.com;compauth=pass 4 | reason=100 5 | From: 6 | To: 7 | -------------------------------------------------------------------------------- /test-data/message/dkimchecks-2022-09-28/alice@outlook.com/alice@yandex.ru: -------------------------------------------------------------------------------- 1 | Authentication-Results: spf=pass (sender IP is 37.140.190.179) 2 | smtp.mailfrom=yandex.ru; dkim=pass (signature was verified) 3 | header.d=yandex.ru;dmarc=pass action=none header.from=yandex.ru;compauth=pass 4 | reason=100 5 | From: 6 | To: 7 | -------------------------------------------------------------------------------- /test-data/message/dkimchecks-2022-09-28/alice@aol.com/alice@gmail.com: -------------------------------------------------------------------------------- 1 | Authentication-Results: atlas-baseline-production.v2-mail-prod1-gq1.omega.yahoo.com; 2 | dkim=pass header.i=@gmail.com header.s=20210112; 3 | spf=pass smtp.mailfrom=gmail.com; 4 | dmarc=pass(p=NONE,sp=QUARANTINE) header.from=gmail.com; 5 | From: 6 | To: 7 | -------------------------------------------------------------------------------- /test-data/message/dkimchecks-2022-09-28/alice@hotmail.com/alice@riseup.net: -------------------------------------------------------------------------------- 1 | Authentication-Results: spf=pass (sender IP is 198.252.153.129) 2 | smtp.mailfrom=riseup.net; dkim=pass (signature was verified) 3 | header.d=riseup.net;dmarc=pass action=none 4 | header.from=riseup.net;compauth=pass reason=100 5 | From: 6 | To: 7 | -------------------------------------------------------------------------------- /test-data/message/dkimchecks-2022-09-28/alice@outlook.com/alice@riseup.net: -------------------------------------------------------------------------------- 1 | Authentication-Results: spf=pass (sender IP is 198.252.153.129) 2 | smtp.mailfrom=riseup.net; dkim=pass (signature was verified) 3 | header.d=riseup.net;dmarc=pass action=none 4 | header.from=riseup.net;compauth=pass reason=100 5 | From: 6 | To: 7 | -------------------------------------------------------------------------------- /test-data/message/dkimchecks-2022-09-28/alice@yahoo.com/alice@icloud.com: -------------------------------------------------------------------------------- 1 | Authentication-Results: atlas-production.v2-mail-prod1-gq1.omega.yahoo.com; 2 | dkim=pass header.i=@icloud.com header.s=1a1hai; 3 | spf=pass smtp.mailfrom=icloud.com; 4 | dmarc=pass(p=QUARANTINE,sp=QUARANTINE) header.from=icloud.com; 5 | From: 6 | To: 7 | -------------------------------------------------------------------------------- /test-data/message/dkimchecks-2022-09-28/alice@yandex.ru/alice@buzon.uy: -------------------------------------------------------------------------------- 1 | Authentication-Results: vla3-66f60228e45a.qloud-c.yandex.net; spf=pass (vla3-66f60228e45a.qloud-c.yandex.net: domain of buzon.uy designates 185.101.93.79 as permitted sender, rule=[mx]) smtp.mail=alice@buzon.uy; dkim=pass header.i=@buzon.uy 2 | From: 3 | To: 4 | -------------------------------------------------------------------------------- /test-data/message/dkimchecks-2022-09-28/alice@hotmail.com/alice@disroot.org: -------------------------------------------------------------------------------- 1 | Authentication-Results: spf=pass (sender IP is 178.21.23.139) 2 | smtp.mailfrom=disroot.org; dkim=pass (signature was verified) 3 | header.d=disroot.org;dmarc=pass action=none 4 | header.from=disroot.org;compauth=pass reason=100 5 | From: 6 | To: 7 | -------------------------------------------------------------------------------- /test-data/message/dkimchecks-2022-09-28/alice@hotmail.com/alice@fastmail.com: -------------------------------------------------------------------------------- 1 | Authentication-Results: spf=pass (sender IP is 66.111.4.28) 2 | smtp.mailfrom=fastmail.com; dkim=pass (signature was verified) 3 | header.d=fastmail.com;dmarc=pass action=none 4 | header.from=fastmail.com;compauth=pass reason=100 5 | From: 6 | To: 7 | -------------------------------------------------------------------------------- /test-data/message/dkimchecks-2022-09-28/alice@outlook.com/alice@disroot.org: -------------------------------------------------------------------------------- 1 | Authentication-Results: spf=pass (sender IP is 178.21.23.139) 2 | smtp.mailfrom=disroot.org; dkim=pass (signature was verified) 3 | header.d=disroot.org;dmarc=pass action=none 4 | header.from=disroot.org;compauth=pass reason=100 5 | From: 6 | To: 7 | -------------------------------------------------------------------------------- /test-data/message/dkimchecks-2022-09-28/alice@outlook.com/alice@fastmail.com: -------------------------------------------------------------------------------- 1 | Authentication-Results: spf=pass (sender IP is 66.111.4.28) 2 | smtp.mailfrom=fastmail.com; dkim=pass (signature was verified) 3 | header.d=fastmail.com;dmarc=pass action=none 4 | header.from=fastmail.com;compauth=pass reason=100 5 | From: 6 | To: 7 | -------------------------------------------------------------------------------- /test-data/message/dkimchecks-2022-09-28/alice@yandex.ru/alice@ik.me: -------------------------------------------------------------------------------- 1 | Authentication-Results: sas2-8adc7f9fdb94.qloud-c.yandex.net; spf=pass (sas2-8adc7f9fdb94.qloud-c.yandex.net: domain of ik.me designates 185.125.25.12 as permitted sender, rule=[ip4:185.125.25.8/29]) smtp.mail=alice@ik.me; dkim=pass header.i=@ik.me 2 | From: 3 | To: 4 | -------------------------------------------------------------------------------- /python/src/deltachat/const.py: -------------------------------------------------------------------------------- 1 | from typing import Any, List 2 | 3 | from .capi import lib 4 | 5 | 6 | def __getattr__(name: str) -> Any: 7 | if name.startswith("DC_"): 8 | return getattr(lib, name) 9 | return globals()[name] 10 | 11 | 12 | def __dir__() -> List[str]: 13 | return sorted(name for name in dir(lib) if name.startswith("DC_")) 14 | -------------------------------------------------------------------------------- /scripts/coredeps/Dockerfile: -------------------------------------------------------------------------------- 1 | ARG BASEIMAGE=quay.io/pypa/manylinux2014_x86_64 2 | #ARG BASEIMAGE=quay.io/pypa/musllinux_1_1_x86_64 3 | #ARG BASEIMAGE=quay.io/pypa/manylinux2014_aarch64 4 | 5 | FROM $BASEIMAGE 6 | RUN pipx install tox 7 | COPY install-rust.sh /scripts/ 8 | RUN /scripts/install-rust.sh 9 | RUN if command -v yum; then yum install -y perl-IPC-Cmd; fi 10 | -------------------------------------------------------------------------------- /test-data/golden/test_outgoing_mua_msg: -------------------------------------------------------------------------------- 1 | Single#Chat#1002: bob@example.net [bob@example.net] Icon: 4138c52e5bc1c576cda7dd44d088c07.png 2 | -------------------------------------------------------------------------------- 3 | Msg#1003: Me (Contact#Contact#Self): One classical MUA message √ 4 | -------------------------------------------------------------------------------- 5 | -------------------------------------------------------------------------------- /test-data/message/dkimchecks-2022-09-28/alice@aol.com/forged-authres-added@example.com: -------------------------------------------------------------------------------- 1 | Authentication-Results: atlas206.aol.mail.ne1.yahoo.com; 2 | dkim=unknown; 3 | spf=none smtp.mailfrom=delta.blinzeln.de; 4 | dmarc=unknown header.from=delta.blinzeln.de; 5 | From: forged-authres-added@example.com 6 | Authentication-Results: aaa.com; dkim=pass header.i=@example.com 7 | -------------------------------------------------------------------------------- /test-data/message/dkimchecks-2022-09-28/alice@e.email/alice@delta.blinzeln.de: -------------------------------------------------------------------------------- 1 | From: 2 | To: 3 | Authentication-Results: mail2.ecloud.global; 4 | dkim=none; 5 | dmarc=none; 6 | spf=none (mail2.ecloud.global: domain of alice@delta.blinzeln.de has no SPF policy when checking 192.162.87.117) smtp.mailfrom=alice@delta.blinzeln.de 7 | -------------------------------------------------------------------------------- /test-data/message/dkimchecks-2022-09-28/alice@mail.ru/alice@ik.me: -------------------------------------------------------------------------------- 1 | From: 2 | To: 3 | Authentication-Results: mxs.mail.ru; spf=pass (mx197.i.mail.ru: domain of ik.me designates 185.125.25.10 as permitted sender) smtp.mailfrom=alice@ik.me smtp.helo=smtp-190a.mail.infomaniak.ch; 4 | dkim=pass header.d=ik.me; dmarc=pass header.from=alice@ik.me 5 | -------------------------------------------------------------------------------- /test-data/message/dkimchecks-2022-09-28/alice@mail.ru/alice@mail.de: -------------------------------------------------------------------------------- 1 | From: 2 | To: 3 | Authentication-Results: mxs.mail.ru; spf=pass (mx285.i.mail.ru: domain of mail.de designates 62.201.172.25 as permitted sender) smtp.mailfrom=alice@mail.de smtp.helo=shout02.mail.de; 4 | dkim=pass header.d=mail.de; dmarc=pass header.from=alice@mail.de 5 | -------------------------------------------------------------------------------- /test-data/message/dkimchecks-2022-09-28/alice@yahoo.com/forged-authres-added@example.com: -------------------------------------------------------------------------------- 1 | Authentication-Results: atlas324.free.mail.ne1.yahoo.com; 2 | dkim=unknown; 3 | spf=none smtp.mailfrom=delta.blinzeln.de; 4 | dmarc=unknown header.from=delta.blinzeln.de; 5 | From: forged-authres-added@example.com 6 | Authentication-Results: aaa.com; dkim=pass header.i=@example.com 7 | -------------------------------------------------------------------------------- /test-data/golden/test_broadcast_joining_golden_private_chat: -------------------------------------------------------------------------------- 1 | Single#Chat#1002: bob@example.net [KEY bob@example.net] 2 | -------------------------------------------------------------------------------- 3 | Msg#1003: info (Contact#Contact#Info): Messages are end-to-end encrypted. [NOTICED][INFO] 4 | -------------------------------------------------------------------------------- 5 | -------------------------------------------------------------------------------- /test-data/message/dkimchecks-2022-09-28/alice@hotmail.com/alice@delta.blinzeln.de: -------------------------------------------------------------------------------- 1 | Authentication-Results: spf=none (sender IP is 192.162.87.121) 2 | smtp.mailfrom=delta.blinzeln.de; dkim=none (message not signed) 3 | header.d=none;dmarc=none action=none 4 | header.from=delta.blinzeln.de;compauth=fail reason=001 5 | From: 6 | To: 7 | -------------------------------------------------------------------------------- /test-data/message/dkimchecks-2022-09-28/alice@mail.ru/alice@buzon.uy: -------------------------------------------------------------------------------- 1 | From: 2 | To: 3 | Authentication-Results: mxs.mail.ru; spf=pass (mx311.i.mail.ru: domain of buzon.uy designates 185.101.93.79 as permitted sender) smtp.mailfrom=alice@buzon.uy smtp.helo=mail.buzon.uy; 4 | dkim=pass header.d=buzon.uy; dmarc=pass header.from=alice@buzon.uy 5 | -------------------------------------------------------------------------------- /test-data/message/dkimchecks-2022-09-28/alice@outlook.com/alice@delta.blinzeln.de: -------------------------------------------------------------------------------- 1 | Authentication-Results: spf=none (sender IP is 192.162.87.171) 2 | smtp.mailfrom=delta.blinzeln.de; dkim=none (message not signed) 3 | header.d=none;dmarc=none action=none 4 | header.from=delta.blinzeln.de;compauth=fail reason=001 5 | From: 6 | To: 7 | -------------------------------------------------------------------------------- /test-data/message/dkimchecks-2022-09-28/alice@yandex.ru/alice@aol.com: -------------------------------------------------------------------------------- 1 | Authentication-Results: vla5-30ef2e2d46cd.qloud-c.yandex.net; spf=pass (vla5-30ef2e2d46cd.qloud-c.yandex.net: domain of aol.com designates 77.238.176.206 as permitted sender, rule=[ip4:77.238.176.0/22]) smtp.mail=alice@aol.com; dkim=pass header.i=@aol.com 2 | From: 3 | To: 4 | -------------------------------------------------------------------------------- /test-data/message/dkimchecks-2022-09-28/alice@yandex.ru/alice@disroot.org: -------------------------------------------------------------------------------- 1 | Authentication-Results: sas1-9c1a55d84a51.qloud-c.yandex.net; spf=pass (sas1-9c1a55d84a51.qloud-c.yandex.net: domain of disroot.org designates 178.21.23.139 as permitted sender, rule=[a]) smtp.mail=alice@disroot.org; dkim=pass header.i=@disroot.org 2 | From: 3 | To: 4 | -------------------------------------------------------------------------------- /test-data/message/dkimchecks-2022-09-28/alice@yandex.ru/alice@mail.ru: -------------------------------------------------------------------------------- 1 | Authentication-Results: myt6-50f129ea7c6f.qloud-c.yandex.net; spf=pass (myt6-50f129ea7c6f.qloud-c.yandex.net: domain of mail.ru designates 94.100.181.251 as permitted sender, rule=[ip4:94.100.176.0/20]) smtp.mail=alice@mail.ru; dkim=pass header.i=@mail.ru 2 | From: 3 | To: 4 | -------------------------------------------------------------------------------- /test-data/message/dkimchecks-2022-09-28/alice@buzon.uy/alice@yandex.ru: -------------------------------------------------------------------------------- 1 | Authentication-Results: mail.buzon.uy; 2 | dkim=pass (1024-bit key; unprotected) header.d=yandex.ru header.i=@yandex.ru header.b="oGBtMMzR"; 3 | dkim-atps=neutral 4 | Authentication-Results: iva4-143b1447cf50.qloud-c.yandex.net; dkim=pass header.i=@yandex.ru 5 | From: 6 | To: 7 | -------------------------------------------------------------------------------- /test-data/message/dkimchecks-2022-09-28/alice@mail.ru/alice@mailo.com: -------------------------------------------------------------------------------- 1 | From: 2 | To: 3 | Authentication-Results: mxs.mail.ru; spf=pass (mx289.i.mail.ru: domain of mailo.com designates 213.182.54.15 as permitted sender) smtp.mailfrom=alice@mailo.com smtp.helo=msg-4.mailo.com; 4 | dkim=pass header.d=mailo.com; dmarc=pass header.from=alice@mailo.com 5 | -------------------------------------------------------------------------------- /test-data/message/dkimchecks-2022-09-28/alice@mail.ru/alice@posteo.de: -------------------------------------------------------------------------------- 1 | From: 2 | To: 3 | Authentication-Results: mxs.mail.ru; spf=pass (mx288.i.mail.ru: domain of posteo.de designates 185.67.36.66 as permitted sender) smtp.mailfrom=alice@posteo.de smtp.helo=mout02.posteo.de; 4 | dkim=pass header.d=posteo.de; dmarc=pass header.from=alice@posteo.de 5 | -------------------------------------------------------------------------------- /test-data/message/dkimchecks-2022-09-28/alice@yandex.ru/alice@posteo.de: -------------------------------------------------------------------------------- 1 | Authentication-Results: iva2-9b85764c69b5.qloud-c.yandex.net; spf=pass (iva2-9b85764c69b5.qloud-c.yandex.net: domain of posteo.de designates 185.67.36.66 as permitted sender, rule=[ip4:185.67.36.0/23]) smtp.mail=alice@posteo.de; dkim=pass header.i=@posteo.de 2 | From: 3 | To: 4 | -------------------------------------------------------------------------------- /test-data/message/dkimchecks-2022-09-28/alice@yandex.ru/alice@yahoo.com: -------------------------------------------------------------------------------- 1 | Authentication-Results: vla5-77e4a2c621ec.qloud-c.yandex.net; spf=pass (vla5-77e4a2c621ec.qloud-c.yandex.net: domain of yahoo.com designates 77.238.179.83 as permitted sender, rule=[ptr:yahoo.com]) smtp.mail=alice@yahoo.com; dkim=pass header.i=@yahoo.com 2 | From: 3 | To: 4 | -------------------------------------------------------------------------------- /test-data/message/dkimchecks-2022-09-28/alice@disroot.org/alice@yandex.ru: -------------------------------------------------------------------------------- 1 | Authentication-Results: disroot.org; 2 | dkim=pass (1024-bit key; unprotected) header.d=yandex.ru header.i=@yandex.ru header.b="CvyR5Vj/"; 3 | dkim-atps=neutral 4 | Authentication-Results: iva4-143b1447cf50.qloud-c.yandex.net; dkim=pass header.i=@yandex.ru 5 | From: 6 | To: 7 | -------------------------------------------------------------------------------- /test-data/message/dkimchecks-2022-09-28/alice@mail.de/alice@yandex.ru: -------------------------------------------------------------------------------- 1 | Authentication-Results: mxpostfix01.mail.de; 2 | dkim=pass (1024-bit key; unprotected) header.d=yandex.ru header.i=@yandex.ru header.b="dsSyS3ny"; 3 | dkim-atps=neutral 4 | Authentication-Results: iva4-143b1447cf50.qloud-c.yandex.net; dkim=pass header.i=@yandex.ru 5 | From: 6 | To: 7 | -------------------------------------------------------------------------------- /test-data/message/dkimchecks-2022-09-28/alice@mail.ru/alice@riseup.net: -------------------------------------------------------------------------------- 1 | From: 2 | To: 3 | Authentication-Results: mxs.mail.ru; spf=pass (mx282.i.mail.ru: domain of riseup.net designates 198.252.153.6 as permitted sender) smtp.mailfrom=alice@riseup.net smtp.helo=mx0.riseup.net; 4 | dkim=pass header.d=riseup.net; dmarc=pass header.from=alice@riseup.net 5 | -------------------------------------------------------------------------------- /test-data/message/dkimchecks-2022-09-28/alice@yandex.ru/alice@icloud.com: -------------------------------------------------------------------------------- 1 | Authentication-Results: sas1-fadc704f0d28.qloud-c.yandex.net; spf=pass (sas1-fadc704f0d28.qloud-c.yandex.net: domain of icloud.com designates 17.57.155.16 as permitted sender, rule=[ip4:17.57.155.0/24]) smtp.mail=alice@icloud.com; dkim=pass header.i=@icloud.com 2 | From: 3 | To: 4 | -------------------------------------------------------------------------------- /test-data/message/dkimchecks-2022-09-28/alice@yandex.ru/alice@mailo.com: -------------------------------------------------------------------------------- 1 | Authentication-Results: vla5-bc29b3935b72.qloud-c.yandex.net; spf=pass (vla5-bc29b3935b72.qloud-c.yandex.net: domain of mailo.com designates 213.182.54.15 as permitted sender, rule=[ip4:213.182.54.0/24]) smtp.mail=alice@mailo.com; dkim=pass header.i=@mailo.com 2 | From: 3 | To: 4 | -------------------------------------------------------------------------------- /test-data/message/dkimchecks-2022-09-28/alice@yandex.ru/alice@riseup.net: -------------------------------------------------------------------------------- 1 | Authentication-Results: iva4-be43fd783926.qloud-c.yandex.net; spf=pass (iva4-be43fd783926.qloud-c.yandex.net: domain of riseup.net designates 198.252.153.6 as permitted sender, rule=[a:mx0.riseup.net]) smtp.mail=alice@riseup.net; dkim=pass header.i=@riseup.net 2 | From: 3 | To: 4 | -------------------------------------------------------------------------------- /test-data/message/dkimchecks-2022-09-28/alice@buzon.uy/alice@mail.ru: -------------------------------------------------------------------------------- 1 | Authentication-Results: mail.buzon.uy; 2 | dkim=pass (2048-bit key; unprotected) header.d=mail.ru header.i=@mail.ru header.b="uXBGAnnn"; 3 | dkim-atps=neutral 4 | From: 5 | To: 6 | Authentication-Results: smtpng1.m.smailru.net; auth=pass smtp.auth=alice@mail.ru smtp.mailfrom=alice@mail.ru 7 | -------------------------------------------------------------------------------- /test-data/message/dkimchecks-2022-09-28/alice@mail.ru/alice@aol.com: -------------------------------------------------------------------------------- 1 | From: 2 | To: 3 | Authentication-Results: mxs.mail.ru; spf=pass (mx216.i.mail.ru: domain of aol.com designates 77.238.176.99 as permitted sender) smtp.mailfrom=alice@aol.com smtp.helo=sonic301-22.consmr.mail.ir2.yahoo.com; 4 | dkim=pass header.d=aol.com; dmarc=pass header.from=alice@aol.com 5 | -------------------------------------------------------------------------------- /test-data/message/dkimchecks-2022-09-28/alice@mail.ru/alice@gmail.com: -------------------------------------------------------------------------------- 1 | From: 2 | To: 3 | Authentication-Results: mxs.mail.ru; spf=pass (mx273.i.mail.ru: domain of gmail.com designates 209.85.221.66 as permitted sender) smtp.mailfrom=alice@gmail.com smtp.helo=mail-wr1-f66.google.com; 4 | dkim=pass header.d=gmail.com; dmarc=pass header.from=alice@gmail.com 5 | -------------------------------------------------------------------------------- /test-data/message/dkimchecks-2022-09-28/alice@mail.ru/alice@yandex.ru: -------------------------------------------------------------------------------- 1 | From: 2 | To: 3 | Authentication-Results: mxs.mail.ru; spf=pass (mx109.mail.ru: domain of yandex.ru designates 77.88.28.112 as permitted sender) smtp.mailfrom=alice@yandex.ru smtp.helo=forward502p.mail.yandex.net; 4 | dkim=pass header.d=yandex.ru; dmarc=pass header.from=alice@yandex.ru 5 | -------------------------------------------------------------------------------- /test-data/message/dkimchecks-2022-09-28/alice@yandex.ru/alice@mail.de: -------------------------------------------------------------------------------- 1 | Authentication-Results: sas1-5ea632933308.qloud-c.yandex.net; spf=pass (sas1-5ea632933308.qloud-c.yandex.net: domain of mail.de designates 2001:868:100:600::217 as permitted sender, rule=[ip6:2001:868:100:600::/64]) smtp.mail=alice@mail.de; dkim=pass header.i=@mail.de 2 | From: 3 | To: 4 | -------------------------------------------------------------------------------- /test-data/message/dkimchecks-2022-09-28/alice@aol.com/alice@fastmail.com: -------------------------------------------------------------------------------- 1 | Authentication-Results: atlas105.aol.mail.ne1.yahoo.com; 2 | dkim=pass header.i=@fastmail.com header.s=fm2; 3 | dkim=pass header.i=@messagingengine.com header.s=fm2; 4 | spf=pass smtp.mailfrom=fastmail.com; 5 | dmarc=pass(p=NONE,sp=NONE) header.from=fastmail.com; 6 | From: 7 | To: 8 | -------------------------------------------------------------------------------- /test-data/message/dkimchecks-2022-09-28/alice@disroot.org/alice@mail.ru: -------------------------------------------------------------------------------- 1 | Authentication-Results: disroot.org; 2 | dkim=pass (2048-bit key; unprotected) header.d=mail.ru header.i=@mail.ru header.b="IrDU+LTI"; 3 | dkim-atps=neutral 4 | From: 5 | To: 6 | Authentication-Results: smtpng1.m.smailru.net; auth=pass smtp.auth=alice@mail.ru smtp.mailfrom=alice@mail.ru 7 | -------------------------------------------------------------------------------- /test-data/message/dkimchecks-2022-09-28/alice@mail.ru/alice@disroot.org: -------------------------------------------------------------------------------- 1 | From: 2 | To: 3 | Authentication-Results: mxs.mail.ru; spf=pass (mx227.i.mail.ru: domain of disroot.org designates 178.21.23.139 as permitted sender) smtp.mailfrom=alice@disroot.org smtp.helo=knopi.disroot.org; 4 | dkim=pass header.d=disroot.org; dmarc=pass header.from=alice@disroot.org 5 | -------------------------------------------------------------------------------- /test-data/message/dkimchecks-2022-09-28/alice@yandex.ru/alice@fastmail.com: -------------------------------------------------------------------------------- 1 | Authentication-Results: myt6-c6cdcba1eefd.qloud-c.yandex.net; spf=pass (myt6-c6cdcba1eefd.qloud-c.yandex.net: domain of fastmail.com designates 66.111.4.28 as permitted sender, rule=[ip4:66.111.4.28]) smtp.mail=alice@fastmail.com; dkim=pass header.i=@fastmail.com 2 | From: 3 | To: 4 | -------------------------------------------------------------------------------- /test-data/message/dkimchecks-2022-09-28/alice@yandex.ru/alice@gmail.com: -------------------------------------------------------------------------------- 1 | Authentication-Results: vla1-f55d97afef99.qloud-c.yandex.net; spf=pass (vla1-f55d97afef99.qloud-c.yandex.net: domain of gmail.com designates 2a00:1450:4864:20::443 as permitted sender, rule=[ip6:2a00:1450:4000::/36]) smtp.mail=alice@gmail.com; dkim=pass header.i=@gmail.com 2 | From: 3 | To: 4 | -------------------------------------------------------------------------------- /test-data/message/dkimchecks-2022-09-28/alice@buzon.uy/alice@hotmail.com: -------------------------------------------------------------------------------- 1 | Authentication-Results: mail.buzon.uy; 2 | dkim=pass (2048-bit key; unprotected) header.d=hotmail.com header.i=@hotmail.com header.b="dEHn9Szj"; 3 | dkim-atps=neutral 4 | ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=none; dmarc=none; 5 | dkim=none; arc=none 6 | From: 7 | To: 8 | -------------------------------------------------------------------------------- /test-data/message/dkimchecks-2022-09-28/alice@buzon.uy/alice@outlook.com: -------------------------------------------------------------------------------- 1 | Authentication-Results: mail.buzon.uy; 2 | dkim=pass (2048-bit key; unprotected) header.d=outlook.com header.i=@outlook.com header.b="Uq5LH/n/"; 3 | dkim-atps=neutral 4 | ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=none; dmarc=none; 5 | dkim=none; arc=none 6 | From: 7 | To: 8 | -------------------------------------------------------------------------------- /test-data/message/dkimchecks-2022-09-28/alice@disroot.org/alice@hotmail.com: -------------------------------------------------------------------------------- 1 | Authentication-Results: disroot.org; 2 | dkim=pass (2048-bit key; unprotected) header.d=hotmail.com header.i=@hotmail.com header.b="VdDCDs55"; 3 | dkim-atps=neutral 4 | ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=none; dmarc=none; 5 | dkim=none; arc=none 6 | From: 7 | To: 8 | -------------------------------------------------------------------------------- /test-data/message/dkimchecks-2022-09-28/alice@disroot.org/alice@outlook.com: -------------------------------------------------------------------------------- 1 | Authentication-Results: disroot.org; 2 | dkim=pass (2048-bit key; unprotected) header.d=outlook.com header.i=@outlook.com header.b="UtZoPK7Z"; 3 | dkim-atps=neutral 4 | ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=none; dmarc=none; 5 | dkim=none; arc=none 6 | From: 7 | To: 8 | -------------------------------------------------------------------------------- /test-data/message/dkimchecks-2022-09-28/alice@mail.de/alice@mail.ru: -------------------------------------------------------------------------------- 1 | Authentication-Results: mxpostfix02.mail.de; 2 | dkim=pass (2048-bit key; unprotected) header.d=mail.ru header.i=@mail.ru header.b="JKR9v9aG"; 3 | dkim-atps=neutral 4 | From: 5 | To: bot 6 | Authentication-Results: smtpng1.m.smailru.net; auth=pass smtp.auth=alice@mail.ru smtp.mailfrom=alice@mail.ru 7 | -------------------------------------------------------------------------------- /test-data/message/dkimchecks-2022-09-28/alice@mail.ru/alice@icloud.com: -------------------------------------------------------------------------------- 1 | From: 2 | To: 3 | Authentication-Results: mxs.mail.ru; spf=pass (mx326.i.mail.ru: domain of icloud.com designates 17.57.155.16 as permitted sender) smtp.mailfrom=alice@icloud.com smtp.helo=qs51p00im-qukt01072701.me.com; 4 | dkim=pass header.d=icloud.com; dmarc=pass header.from=alice@icloud.com 5 | -------------------------------------------------------------------------------- /test-data/message/dkimchecks-2022-09-28/alice@e.email/alice@ik.me: -------------------------------------------------------------------------------- 1 | From: 2 | To: 3 | Authentication-Results: mail2.ecloud.global; 4 | dkim=pass header.d=ik.me header.s=20200325 header.b=E5lGMzkQ; 5 | dmarc=pass (policy=reject) header.from=ik.me; 6 | spf=pass (mail2.ecloud.global: domain of alice@ik.me designates 83.166.143.168 as permitted sender) smtp.mailfrom=alice@ik.me 7 | -------------------------------------------------------------------------------- /test-data/message/dkimchecks-2022-09-28/alice@mail.de/alice@hotmail.com: -------------------------------------------------------------------------------- 1 | Authentication-Results: mxpostfix03.mail.de; 2 | dkim=pass (2048-bit key; unprotected) header.d=hotmail.com header.i=@hotmail.com header.b="CU2s8rqP"; 3 | dkim-atps=neutral 4 | ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=none; dmarc=none; 5 | dkim=none; arc=none 6 | From: 7 | To: bot 8 | -------------------------------------------------------------------------------- /test-data/message/dkimchecks-2022-09-28/alice@mail.de/alice@outlook.com: -------------------------------------------------------------------------------- 1 | Authentication-Results: mxpostfix03.mail.de; 2 | dkim=pass (2048-bit key; unprotected) header.d=outlook.com header.i=@outlook.com header.b="lZ/3SL2c"; 3 | dkim-atps=neutral 4 | ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=none; dmarc=none; 5 | dkim=none; arc=none 6 | From: 7 | To: bot 8 | -------------------------------------------------------------------------------- /test-data/message/dkimchecks-2022-09-28/alice@mail.ru/alice@yahoo.com: -------------------------------------------------------------------------------- 1 | From: 2 | To: 3 | Authentication-Results: mxs.mail.ru; spf=pass (mx252.i.mail.ru: domain of yahoo.com designates 77.238.179.188 as permitted sender) smtp.mailfrom=alice@yahoo.com smtp.helo=sonic313-21.consmr.mail.ir2.yahoo.com; 4 | dkim=pass header.d=yahoo.com; dmarc=pass header.from=alice@yahoo.com 5 | -------------------------------------------------------------------------------- /test-data/message/dkimchecks-2022-09-28/alice@posteo.de/alice@ik.me: -------------------------------------------------------------------------------- 1 | Authentication-Results: posteo.de; dmarc=pass (p=reject dis=none) header.from=ik.me 2 | Authentication-Results: posteo.de; spf=pass smtp.mailfrom=ik.me 3 | Authentication-Results: posteo.de; 4 | dkim=pass (1024-bit key) header.d=ik.me header.i=@ik.me header.b=4ibRj8Gi; 5 | dkim-atps=neutral 6 | From: 7 | To: 8 | -------------------------------------------------------------------------------- /test-data/message/dkimchecks-2022-09-28/alice@e.email/alice@aol.com: -------------------------------------------------------------------------------- 1 | From: 2 | To: 3 | Authentication-Results: mail3.ecloud.global; 4 | dkim=pass header.d=aol.com header.s=a2048 header.b=HlBq3Lmt; 5 | dmarc=pass (policy=reject) header.from=aol.com; 6 | spf=pass (mail3.ecloud.global: domain of alice@aol.com designates 77.238.178.146 as permitted sender) smtp.mailfrom=alice@aol.com 7 | -------------------------------------------------------------------------------- /test-data/message/dkimchecks-2022-09-28/alice@e.email/alice@mail.ru: -------------------------------------------------------------------------------- 1 | From: 2 | To: 3 | Authentication-Results: mail2.ecloud.global; 4 | dkim=pass header.d=mail.ru header.s=mail4 header.b=heZ1ZiKV; 5 | dmarc=pass (policy=reject) header.from=mail.ru; 6 | spf=pass (mail2.ecloud.global: domain of alice@mail.ru designates 94.100.181.251 as permitted sender) smtp.mailfrom=alice@mail.ru 7 | -------------------------------------------------------------------------------- /test-data/message/dkimchecks-2022-09-28/alice@yahoo.com/alice@fastmail.com: -------------------------------------------------------------------------------- 1 | Authentication-Results: atlas-production.v2-mail-prod1-gq1.omega.yahoo.com; 2 | dkim=pass header.i=@fastmail.com header.s=fm2; 3 | dkim=pass header.i=@messagingengine.com header.s=fm2; 4 | spf=pass smtp.mailfrom=fastmail.com; 5 | dmarc=pass(p=NONE,sp=NONE) header.from=fastmail.com; 6 | From: 7 | To: 8 | -------------------------------------------------------------------------------- /test-data/message/dkimchecks-2022-09-28/alice@buzon.uy/alice@fastmail.com: -------------------------------------------------------------------------------- 1 | Authentication-Results: mail.buzon.uy; 2 | dkim=pass (2048-bit key; unprotected) header.d=fastmail.com header.i=@fastmail.com header.b="kLB05is1"; 3 | dkim=pass (2048-bit key; unprotected) header.d=messagingengine.com header.i=@messagingengine.com header.b="B8mfR89g"; 4 | dkim-atps=neutral 5 | From: 6 | To: 7 | -------------------------------------------------------------------------------- /test-data/message/dkimchecks-2022-09-28/alice@e.email/alice@buzon.uy: -------------------------------------------------------------------------------- 1 | From: 2 | To: 3 | Authentication-Results: mail3.ecloud.global; 4 | dkim=pass header.d=buzon.uy header.s=2019 header.b=XfN4sE6M; 5 | dmarc=pass (policy=reject) header.from=buzon.uy; 6 | spf=pass (mail3.ecloud.global: domain of alice@buzon.uy designates 185.101.93.79 as permitted sender) smtp.mailfrom=alice@buzon.uy 7 | -------------------------------------------------------------------------------- /test-data/message/dkimchecks-2022-09-28/alice@e.email/alice@posteo.de: -------------------------------------------------------------------------------- 1 | From: 2 | To: 3 | Authentication-Results: mail2.ecloud.global; 4 | dkim=pass header.d=posteo.de header.s=2017 header.b=bMopHaXo; 5 | dmarc=pass (policy=none) header.from=posteo.de; 6 | spf=pass (mail2.ecloud.global: domain of alice@posteo.de designates 185.67.36.66 as permitted sender) smtp.mailfrom=alice@posteo.de 7 | -------------------------------------------------------------------------------- /test-data/message/dkimchecks-2022-09-28/alice@posteo.de/alice@aol.com: -------------------------------------------------------------------------------- 1 | Authentication-Results: posteo.de; dmarc=pass (p=reject dis=none) header.from=aol.com 2 | Authentication-Results: posteo.de; spf=pass smtp.mailfrom=aol.com 3 | Authentication-Results: posteo.de; 4 | dkim=pass (2048-bit key) header.d=aol.com header.i=@aol.com header.b=GjnZ7bT0; 5 | dkim-atps=neutral 6 | From: 7 | To: 8 | -------------------------------------------------------------------------------- /test-data/message/dkimchecks-2022-09-28/alice@posteo.de/alice@mail.de: -------------------------------------------------------------------------------- 1 | Authentication-Results: posteo.de; dmarc=pass (p=none dis=none) header.from=mail.de 2 | Authentication-Results: posteo.de; spf=pass smtp.mailfrom=mail.de 3 | Authentication-Results: posteo.de; 4 | dkim=pass (2048-bit key) header.d=mail.de header.i=@mail.de header.b=QjA9h4IW; 5 | dkim-atps=neutral 6 | From: 7 | To: 8 | -------------------------------------------------------------------------------- /test-data/message/dkimchecks-2022-09-28/alice@riseup.net/alice@yandex.ru: -------------------------------------------------------------------------------- 1 | Authentication-Results: mx1.riseup.net; 2 | dkim=pass (1024-bit key; unprotected) header.d=yandex.ru header.i=@yandex.ru header.a=rsa-sha256 header.s=mail header.b=avNJu6sw; 3 | dkim-atps=neutral 4 | Authentication-Results: iva4-143b1447cf50.qloud-c.yandex.net; dkim=pass header.i=@yandex.ru 5 | From: 6 | To: 7 | -------------------------------------------------------------------------------- /test-data/message/text_plain_flowed.eml: -------------------------------------------------------------------------------- 1 | Message-Id: 2 | Date: Sat, 14 Sep 2019 19:00:13 +0200 3 | From: lmn 4 | To: abc 5 | Content-Type: text/plain; charset=utf-8; format=flowed 6 | 7 | This line ends with a space 8 | and will be merged with the next one due to format=flowed. 9 | 10 | This line does not end with a space 11 | and will be wrapped as usual. 12 | -------------------------------------------------------------------------------- /test-data/message/dkimchecks-2022-09-28/alice@disroot.org/alice@fastmail.com: -------------------------------------------------------------------------------- 1 | Authentication-Results: disroot.org; 2 | dkim=pass (2048-bit key; unprotected) header.d=fastmail.com header.i=@fastmail.com header.b="OFgq9UWZ"; 3 | dkim=pass (2048-bit key; unprotected) header.d=messagingengine.com header.i=@messagingengine.com header.b="B52d7C0G"; 4 | dkim-atps=neutral 5 | From: 6 | To: 7 | -------------------------------------------------------------------------------- /test-data/message/dkimchecks-2022-09-28/alice@e.email/alice@mail.de: -------------------------------------------------------------------------------- 1 | From: 2 | To: 3 | Authentication-Results: mail3.ecloud.global; 4 | dkim=pass header.d=mail.de header.s=mailde202009 header.b=vVqLo0H5; 5 | dmarc=pass (policy=none) header.from=mail.de; 6 | spf=pass (mail3.ecloud.global: domain of alice@mail.de designates 2001:868:100:600::216 as permitted sender) smtp.mailfrom=alice@mail.de 7 | -------------------------------------------------------------------------------- /test-data/message/dkimchecks-2022-09-28/alice@e.email/alice@mailo.com: -------------------------------------------------------------------------------- 1 | From: 2 | To: 3 | Authentication-Results: mail2.ecloud.global; 4 | dkim=pass header.d=mailo.com header.s=mailo header.b=HnhKNKUg; 5 | dmarc=pass (policy=none) header.from=mailo.com; 6 | spf=pass (mail2.ecloud.global: domain of alice@mailo.com designates 213.182.54.15 as permitted sender) smtp.mailfrom=alice@mailo.com 7 | -------------------------------------------------------------------------------- /test-data/message/dkimchecks-2022-09-28/alice@e.email/alice@yahoo.com: -------------------------------------------------------------------------------- 1 | From: 2 | To: 3 | Authentication-Results: mail2.ecloud.global; 4 | dkim=pass header.d=yahoo.com header.s=s2048 header.b=mRSwanl2; 5 | dmarc=pass (policy=reject) header.from=yahoo.com; 6 | spf=pass (mail2.ecloud.global: domain of alice@yahoo.com designates 77.238.178.146 as permitted sender) smtp.mailfrom=alice@yahoo.com 7 | -------------------------------------------------------------------------------- /test-data/message/dkimchecks-2022-09-28/alice@posteo.de/alice@buzon.uy: -------------------------------------------------------------------------------- 1 | Authentication-Results: posteo.de; dmarc=pass (p=reject dis=none) header.from=buzon.uy 2 | Authentication-Results: posteo.de; spf=pass smtp.mailfrom=buzon.uy 3 | Authentication-Results: posteo.de; 4 | dkim=pass (2048-bit key) header.d=buzon.uy header.i=@buzon.uy header.b=BvEzK1ZM; 5 | dkim-atps=neutral 6 | From: 7 | To: 8 | -------------------------------------------------------------------------------- /test-data/message/dkimchecks-2022-09-28/alice@posteo.de/alice@delta.blinzeln.de: -------------------------------------------------------------------------------- 1 | Authentication-Results: posteo.de; dmarc=none (p=none dis=none) header.from=delta.blinzeln.de 2 | Authentication-Results: posteo.de; spf=tempfail smtp.mailfrom=delta.blinzeln.de 3 | From: 4 | To: 5 | Authentication-Results: secure-mailgate.com; auth=pass smtp.auth=91.203.111.88@webbox222.server-home.org 6 | -------------------------------------------------------------------------------- /test-data/golden/test_old_message_5: -------------------------------------------------------------------------------- 1 | Single#Chat#11001: Bob [bob@example.net] Icon: 4138c52e5bc1c576cda7dd44d088c07.png 2 | -------------------------------------------------------------------------------- 3 | Msg#11001: Me (Contact#Contact#Self): Happy birthday, Bob! √ 4 | Msg#11002: (Contact#Contact#11001): Happy birthday to me, Alice! [FRESH] 5 | -------------------------------------------------------------------------------- 6 | -------------------------------------------------------------------------------- /test-data/message/dkimchecks-2022-09-28/alice@aol.com/alice@hotmail.com: -------------------------------------------------------------------------------- 1 | Authentication-Results: atlas112.aol.mail.bf1.yahoo.com; 2 | dkim=pass header.i=@hotmail.com header.s=selector1; 3 | spf=pass smtp.mailfrom=hotmail.com; 4 | dmarc=pass(p=NONE) header.from=hotmail.com; 5 | ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=none; dmarc=none; 6 | dkim=none; arc=none 7 | From: 8 | To: 9 | -------------------------------------------------------------------------------- /test-data/message/dkimchecks-2022-09-28/alice@ik.me/alice@delta.blinzeln.de: -------------------------------------------------------------------------------- 1 | Authentication-Results: mx.infomaniak.com; dmarc=none (p=none dis=none) header.from=delta.blinzeln.de 2 | From: 3 | To: 4 | Authentication-Results: secure-mailgate.com; auth=pass smtp.auth=91.203.111.88@webbox222.server-home.org 5 | Authentication-Results: mx.infomaniak.com; spf=none smtp.mailfrom=delta.blinzeln.de 6 | -------------------------------------------------------------------------------- /test-data/message/dkimchecks-2022-09-28/alice@mail.de/alice@fastmail.com: -------------------------------------------------------------------------------- 1 | Authentication-Results: mxpostfix02.mail.de; 2 | dkim=pass (2048-bit key; unprotected) header.d=fastmail.com header.i=@fastmail.com header.b="Tt2wMg3b"; 3 | dkim=pass (2048-bit key; unprotected) header.d=messagingengine.com header.i=@messagingengine.com header.b="kVONgiOo"; 4 | dkim-atps=neutral 5 | From: 6 | To: bot 7 | -------------------------------------------------------------------------------- /test-data/message/dkimchecks-2022-09-28/alice@posteo.de/alice@gmail.com: -------------------------------------------------------------------------------- 1 | Authentication-Results: posteo.de; dmarc=pass (p=none dis=none) header.from=gmail.com 2 | Authentication-Results: posteo.de; spf=pass smtp.mailfrom=gmail.com 3 | Authentication-Results: posteo.de; 4 | dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=SJjarA70; 5 | dkim-atps=neutral 6 | From: 7 | To: 8 | -------------------------------------------------------------------------------- /test-data/message/dkimchecks-2022-09-28/alice@posteo.de/alice@mailo.com: -------------------------------------------------------------------------------- 1 | Authentication-Results: posteo.de; dmarc=pass (p=none dis=none) header.from=mailo.com 2 | Authentication-Results: posteo.de; spf=pass smtp.mailfrom=mailo.com 3 | Authentication-Results: posteo.de; 4 | dkim=pass (1024-bit key) header.d=mailo.com header.i=@mailo.com header.b=Ye7KpuTx; 5 | dkim-atps=neutral 6 | From: 7 | To: 8 | -------------------------------------------------------------------------------- /deltachat-ffi/README.md: -------------------------------------------------------------------------------- 1 | # Delta Chat C Interface 2 | 3 | ## Installation 4 | 5 | see `Installing libdeltachat system wide` in [../README.md](../README.md) 6 | 7 | ## Documentation 8 | 9 | To generate the C Interface documentation, 10 | call doxygen in the `deltachat-ffi` directory 11 | and browse the `html` subdirectory. 12 | 13 | If thinks work, 14 | the documentation is also available online at 15 | -------------------------------------------------------------------------------- /test-data/message/dkimchecks-2022-09-28/alice@e.email/alice@gmail.com: -------------------------------------------------------------------------------- 1 | From: 2 | To: 3 | Authentication-Results: mail2.ecloud.global; 4 | dkim=pass header.d=gmail.com header.s=20210112 header.b=f2AxVaaA; 5 | dmarc=pass (policy=none) header.from=gmail.com; 6 | spf=pass (mail2.ecloud.global: domain of alice@gmail.com designates 2a00:1450:4864:20::443 as permitted sender) smtp.mailfrom=alice@gmail.com 7 | -------------------------------------------------------------------------------- /test-data/message/dkimchecks-2022-09-28/alice@e.email/alice@icloud.com: -------------------------------------------------------------------------------- 1 | From: 2 | To: 3 | Authentication-Results: mail3.ecloud.global; 4 | dkim=pass header.d=icloud.com header.s=1a1hai header.b=enuQcpfH; 5 | dmarc=pass (policy=quarantine) header.from=icloud.com; 6 | spf=pass (mail3.ecloud.global: domain of alice@icloud.com designates 17.57.155.16 as permitted sender) smtp.mailfrom=alice@icloud.com 7 | -------------------------------------------------------------------------------- /test-data/message/dkimchecks-2022-09-28/alice@e.email/alice@riseup.net: -------------------------------------------------------------------------------- 1 | From: 2 | To: 3 | Authentication-Results: mail2.ecloud.global; 4 | dkim=pass header.d=riseup.net header.s=squak header.b="GUmo/IlI"; 5 | dmarc=pass (policy=none) header.from=riseup.net; 6 | spf=pass (mail2.ecloud.global: domain of alice@riseup.net designates 198.252.153.129 as permitted sender) smtp.mailfrom=alice@riseup.net 7 | -------------------------------------------------------------------------------- /test-data/message/dkimchecks-2022-09-28/alice@posteo.de/alice@riseup.net: -------------------------------------------------------------------------------- 1 | Authentication-Results: posteo.de; dmarc=pass (p=none dis=none) header.from=riseup.net 2 | Authentication-Results: posteo.de; spf=pass smtp.mailfrom=riseup.net 3 | Authentication-Results: posteo.de; 4 | dkim=pass (1024-bit key) header.d=riseup.net header.i=@riseup.net header.b=hAaxuWvc; 5 | dkim-atps=neutral 6 | From: 7 | To: 8 | -------------------------------------------------------------------------------- /test-data/message/dkimchecks-2022-09-28/alice@posteo.de/alice@yahoo.com: -------------------------------------------------------------------------------- 1 | Authentication-Results: posteo.de; dmarc=pass (p=reject dis=none) header.from=yahoo.com 2 | Authentication-Results: posteo.de; spf=pass smtp.mailfrom=yahoo.com 3 | Authentication-Results: posteo.de; 4 | dkim=pass (2048-bit key) header.d=yahoo.com header.i=@yahoo.com header.b=XTEPlzFO; 5 | dkim-atps=neutral 6 | From: 7 | To: 8 | -------------------------------------------------------------------------------- /test-data/message/dkimchecks-2022-09-28/alice@riseup.net/alice@mail.ru: -------------------------------------------------------------------------------- 1 | Authentication-Results: mx1.riseup.net; 2 | dkim=pass (2048-bit key; unprotected) header.d=mail.ru header.i=@mail.ru header.a=rsa-sha256 header.s=mail4 header.b=YraBU3ek; 3 | dkim-atps=neutral 4 | From: 5 | To: bot 6 | Authentication-Results: smtpng1.m.smailru.net; auth=pass smtp.auth=alice@mail.ru smtp.mailfrom=alice@mail.ru 7 | -------------------------------------------------------------------------------- /test-data/message/dkimchecks-2022-09-28/alice@yahoo.com/alice@hotmail.com: -------------------------------------------------------------------------------- 1 | Authentication-Results: atlas305.free.mail.ne1.yahoo.com; 2 | dkim=pass header.i=@hotmail.com header.s=selector1; 3 | spf=pass smtp.mailfrom=hotmail.com; 4 | dmarc=pass(p=NONE) header.from=hotmail.com; 5 | ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=none; dmarc=none; 6 | dkim=none; arc=none 7 | From: 8 | To: 9 | -------------------------------------------------------------------------------- /test-data/message/dkimchecks-2022-09-28/alice@e.email/alice@disroot.org: -------------------------------------------------------------------------------- 1 | From: 2 | To: 3 | Authentication-Results: mail2.ecloud.global; 4 | dkim=pass header.d=disroot.org header.s=mail header.b=Vf7JxMcu; 5 | dmarc=pass (policy=quarantine) header.from=disroot.org; 6 | spf=pass (mail2.ecloud.global: domain of alice@disroot.org designates 178.21.23.139 as permitted sender) smtp.mailfrom=alice@disroot.org 7 | -------------------------------------------------------------------------------- /test-data/message/dkimchecks-2022-09-28/alice@zohomail.eu/alice@delta.blinzeln.de: -------------------------------------------------------------------------------- 1 | Authentication-Results: mx.zohomail.eu; 2 | spf=none (zohomail.eu: 192.162.87.206 is neither permitted nor denied by domain of delta.blinzeln.de) smtp.mailfrom=alice@delta.blinzeln.de 3 | From: 4 | To: 5 | Authentication-Results: secure-mailgate.com; auth=pass smtp.auth=91.203.111.88@webbox222.server-home.org 6 | -------------------------------------------------------------------------------- /test-data/golden/receive_imf_older_message_from_2nd_device: -------------------------------------------------------------------------------- 1 | Single#Chat#1001: bob@example.net [bob@example.net] Icon: 4138c52e5bc1c576cda7dd44d088c07.png 2 | -------------------------------------------------------------------------------- 3 | Msg#1001: Me (Contact#Contact#Self): We share this account √ 4 | Msg#1002: Me (Contact#Contact#Self): I'm Alice too √ 5 | -------------------------------------------------------------------------------- 6 | -------------------------------------------------------------------------------- /test-data/message/dkimchecks-2022-09-28/alice@ik.me/alice@mail.de: -------------------------------------------------------------------------------- 1 | Authentication-Results: mx.infomaniak.com; dmarc=pass (p=none dis=none) header.from=mail.de 2 | Authentication-Results: mx.infomaniak.com; 3 | dkim=pass (2048-bit key; secure) header.d=mail.de header.i=@mail.de header.b="tBa3jrls"; 4 | dkim-atps=neutral 5 | From: 6 | To: 7 | Authentication-Results: mx.infomaniak.com; spf=pass smtp.mailfrom=mail.de 8 | -------------------------------------------------------------------------------- /test-data/message/dkimchecks-2022-09-28/alice@posteo.de/alice@icloud.com: -------------------------------------------------------------------------------- 1 | Authentication-Results: posteo.de; dmarc=pass (p=quarantine dis=none) header.from=icloud.com 2 | Authentication-Results: posteo.de; spf=pass smtp.mailfrom=icloud.com 3 | Authentication-Results: posteo.de; 4 | dkim=pass (2048-bit key) header.d=icloud.com header.i=@icloud.com header.b=r/M8U3nt; 5 | dkim-atps=neutral 6 | From: 7 | To: 8 | -------------------------------------------------------------------------------- /test-data/message/dkimchecks-2022-09-28/alice@posteo.de/forged-authres-added@example.com: -------------------------------------------------------------------------------- 1 | Authentication-Results: posteo.de; dmarc=none (p=none dis=none) header.from=delta.blinzeln.de 2 | Authentication-Results: posteo.de; spf=tempfail smtp.mailfrom=delta.blinzeln.de 3 | From: forged-authres-added@example.com 4 | Authentication-Results: aaa.com; dkim=pass header.i=@example.com 5 | Authentication-Results: aaa.com; dkim=pass header.i=@example.com 6 | -------------------------------------------------------------------------------- /test-data/message/dkimchecks-2022-09-28/alice@riseup.net/alice@hotmail.com: -------------------------------------------------------------------------------- 1 | Authentication-Results: mx1.riseup.net; 2 | dkim=pass (2048-bit key; unprotected) header.d=hotmail.com header.i=@hotmail.com header.a=rsa-sha256 header.s=selector1 header.b=ot+fEoWQ; 3 | dkim-atps=neutral 4 | ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=none; dmarc=none; 5 | dkim=none; arc=none 6 | From: 7 | To: bot 8 | -------------------------------------------------------------------------------- /test-data/message/dkimchecks-2022-09-28/alice@riseup.net/alice@outlook.com: -------------------------------------------------------------------------------- 1 | Authentication-Results: mx1.riseup.net; 2 | dkim=pass (2048-bit key; unprotected) header.d=outlook.com header.i=@outlook.com header.a=rsa-sha256 header.s=selector1 header.b=qavaKmkq; 3 | dkim-atps=neutral 4 | ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=none; dmarc=none; 5 | dkim=none; arc=none 6 | From: 7 | To: bot 8 | -------------------------------------------------------------------------------- /test-data/message/dkimchecks-2022-09-28/alice@ik.me/alice@aol.com: -------------------------------------------------------------------------------- 1 | Authentication-Results: mx.infomaniak.com; dmarc=pass (p=reject dis=none) header.from=aol.com 2 | Authentication-Results: mx.infomaniak.com; 3 | dkim=pass (2048-bit key; unprotected) header.d=aol.com header.i=@aol.com header.b="Txpx5K4S"; 4 | dkim-atps=neutral 5 | From: 6 | To: 7 | Authentication-Results: mx.infomaniak.com; spf=pass smtp.mailfrom=aol.com 8 | -------------------------------------------------------------------------------- /test-data/message/dkimchecks-2022-09-28/alice@posteo.de/alice@disroot.org: -------------------------------------------------------------------------------- 1 | Authentication-Results: posteo.de; dmarc=pass (p=quarantine dis=none) header.from=disroot.org 2 | Authentication-Results: posteo.de; spf=pass smtp.mailfrom=disroot.org 3 | Authentication-Results: posteo.de; 4 | dkim=pass (2048-bit key) header.d=disroot.org header.i=@disroot.org header.b=efBb8ZQO; 5 | dkim-atps=neutral 6 | From: 7 | To: 8 | -------------------------------------------------------------------------------- /test-data/message/dkimchecks-2022-09-28/alice@yahoo.com/alice@outlook.com: -------------------------------------------------------------------------------- 1 | Authentication-Results: atlas219.free.mail.bf1.yahoo.com; 2 | dkim=pass header.i=@outlook.com header.s=selector1; 3 | spf=pass smtp.mailfrom=outlook.com; 4 | dmarc=pass(p=NONE,sp=QUARANTINE) header.from=outlook.com; 5 | ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=none; dmarc=none; 6 | dkim=none; arc=none 7 | From: 8 | To: 9 | -------------------------------------------------------------------------------- /test-data/message/dkimchecks-2022-09-28/alice@ik.me/alice@posteo.de: -------------------------------------------------------------------------------- 1 | Authentication-Results: mx.infomaniak.com; dmarc=pass (p=none dis=none) header.from=posteo.de 2 | Authentication-Results: mx.infomaniak.com; 3 | dkim=pass (2048-bit key; secure) header.d=posteo.de header.i=@posteo.de header.b="UcblSoDm"; 4 | dkim-atps=neutral 5 | From: 6 | To: 7 | Authentication-Results: mx.infomaniak.com; spf=pass smtp.mailfrom=posteo.de 8 | -------------------------------------------------------------------------------- /test-data/message/dkimchecks-2022-09-28/alice@ik.me/forged-authres-added@example.com: -------------------------------------------------------------------------------- 1 | Authentication-Results: mx.infomaniak.com; dmarc=none (p=none dis=none) header.from=delta.blinzeln.de 2 | From: forged-authres-added@example.com 3 | Authentication-Results: aaa.com; dkim=pass header.i=@example.com 4 | Authentication-Results: mx.infomaniak.com; spf=none smtp.mailfrom=delta.blinzeln.de 5 | Authentication-Results: aaa.com; dkim=pass header.i=@example.com 6 | -------------------------------------------------------------------------------- /test-data/message/dkimchecks-2022-09-28/alice@mail.ru/alice@fastmail.com: -------------------------------------------------------------------------------- 1 | From: 2 | To: 3 | Authentication-Results: mxs.mail.ru; spf=pass (mx285.i.mail.ru: domain of fastmail.com designates 66.111.4.28 as permitted sender) smtp.mailfrom=alice@fastmail.com smtp.helo=out4-smtp.messagingengine.com; 4 | dkim=pass header.d=fastmail.com; 5 | dkim=pass header.d=messagingengine.com; dmarc=pass header.from=alice@fastmail.com 6 | -------------------------------------------------------------------------------- /python/README.rst: -------------------------------------------------------------------------------- 1 | ============================ 2 | CFFI Python Bindings 3 | ============================ 4 | 5 | This package provides `Python bindings`_ to the `chatmail core library`_ 6 | which implements IMAP/SMTP/MIME/OpenPGP e-mail standards and offers 7 | a low-level Chat/Contact/Message API to user interfaces and bots. 8 | 9 | .. _`chatmail core library`: https://github.com/chatmail/core 10 | .. _`Python bindings`: https://py.delta.chat/ 11 | -------------------------------------------------------------------------------- /test-data/message/dkimchecks-2022-09-28/alice@ik.me/alice@buzon.uy: -------------------------------------------------------------------------------- 1 | Authentication-Results: mx.infomaniak.com; dmarc=pass (p=reject dis=none) header.from=buzon.uy 2 | Authentication-Results: mx.infomaniak.com; 3 | dkim=pass (2048-bit key; unprotected) header.d=buzon.uy header.i=@buzon.uy header.b="myjYUi37"; 4 | dkim-atps=neutral 5 | From: 6 | To: 7 | Authentication-Results: mx.infomaniak.com; spf=pass smtp.mailfrom=buzon.uy 8 | -------------------------------------------------------------------------------- /test-data/message/dkimchecks-2022-09-28/alice@ik.me/alice@gmail.com: -------------------------------------------------------------------------------- 1 | Authentication-Results: mx.infomaniak.com; dmarc=pass (p=none dis=none) header.from=gmail.com 2 | Authentication-Results: mx.infomaniak.com; 3 | dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="HII5WJV8"; 4 | dkim-atps=neutral 5 | From: 6 | To: 7 | Authentication-Results: mx.infomaniak.com; spf=pass smtp.mailfrom=gmail.com 8 | -------------------------------------------------------------------------------- /test-data/message/dkimchecks-2022-09-28/alice@ik.me/alice@mailo.com: -------------------------------------------------------------------------------- 1 | Authentication-Results: mx.infomaniak.com; dmarc=pass (p=none dis=none) header.from=mailo.com 2 | Authentication-Results: mx.infomaniak.com; 3 | dkim=pass (1024-bit key; unprotected) header.d=mailo.com header.i=@mailo.com header.b="W4AVjC6K"; 4 | dkim-atps=neutral 5 | From: 6 | To: 7 | Authentication-Results: mx.infomaniak.com; spf=pass smtp.mailfrom=mailo.com 8 | -------------------------------------------------------------------------------- /test-data/message/dkimchecks-2022-09-28/alice@aol.com/alice@outlook.com: -------------------------------------------------------------------------------- 1 | Authentication-Results: atlas-production.v2-mail-prod1-gq1.omega.yahoo.com; 2 | dkim=pass header.i=@outlook.com header.s=selector1; 3 | spf=pass smtp.mailfrom=outlook.com; 4 | dmarc=pass(p=NONE,sp=QUARANTINE) header.from=outlook.com; 5 | ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=none; dmarc=none; 6 | dkim=none; arc=none 7 | From: 8 | To: 9 | -------------------------------------------------------------------------------- /test-data/message/dkimchecks-2022-09-28/alice@ik.me/alice@riseup.net: -------------------------------------------------------------------------------- 1 | Authentication-Results: mx.infomaniak.com; dmarc=pass (p=none dis=none) header.from=riseup.net 2 | Authentication-Results: mx.infomaniak.com; 3 | dkim=pass (1024-bit key; secure) header.d=riseup.net header.i=@riseup.net header.b="dGbBF9qT"; 4 | dkim-atps=neutral 5 | From: 6 | To: 7 | Authentication-Results: mx.infomaniak.com; spf=pass smtp.mailfrom=riseup.net 8 | -------------------------------------------------------------------------------- /test-data/message/dkimchecks-2022-09-28/alice@ik.me/alice@yahoo.com: -------------------------------------------------------------------------------- 1 | Authentication-Results: mx.infomaniak.com; dmarc=pass (p=reject dis=none) header.from=yahoo.com 2 | Authentication-Results: mx.infomaniak.com; 3 | dkim=pass (2048-bit key; unprotected) header.d=yahoo.com header.i=@yahoo.com header.b="sJ+4wNJ7"; 4 | dkim-atps=neutral 5 | From: 6 | To: 7 | Authentication-Results: mx.infomaniak.com; spf=pass smtp.mailfrom=yahoo.com 8 | -------------------------------------------------------------------------------- /test-data/message/text_alt_html.eml: -------------------------------------------------------------------------------- 1 | Subject: mime-modified test 2 | Message-ID: 12345@testrun.org 3 | Date: Sat, 07 Dec 2019 19:00:27 +0000 4 | To: recp@testrun.org 5 | From: sender@testrun.org 6 | Content-Type: multipart/alternative; boundary="==BREAK==" 7 | 8 | 9 | --==BREAK== 10 | Content-Type: text/html; charset=utf-8 11 | 12 | 13 |

mime-modified set; simplify is always regarded as lossy.

14 | 15 | 16 | --==BREAK==-- 17 | -------------------------------------------------------------------------------- /test-data/message/dkimchecks-2022-09-28/alice@ik.me/alice@disroot.org: -------------------------------------------------------------------------------- 1 | Authentication-Results: mx.infomaniak.com; dmarc=pass (p=quarantine dis=none) header.from=disroot.org 2 | Authentication-Results: mx.infomaniak.com; 3 | dkim=pass (2048-bit key; secure) header.d=disroot.org header.i=@disroot.org header.b="HlBDJq/t"; 4 | dkim-atps=neutral 5 | From: 6 | To: 7 | Authentication-Results: mx.infomaniak.com; spf=pass smtp.mailfrom=disroot.org 8 | -------------------------------------------------------------------------------- /test-data/message/dkimchecks-2022-09-28/alice@ik.me/alice@icloud.com: -------------------------------------------------------------------------------- 1 | Authentication-Results: mx.infomaniak.com; dmarc=pass (p=quarantine dis=none) header.from=icloud.com 2 | Authentication-Results: mx.infomaniak.com; 3 | dkim=pass (2048-bit key; unprotected) header.d=icloud.com header.i=@icloud.com header.b="RYsH+EvP"; 4 | dkim-atps=neutral 5 | From: 6 | To: 7 | Authentication-Results: mx.infomaniak.com; spf=pass smtp.mailfrom=icloud.com 8 | -------------------------------------------------------------------------------- /python/doc/jsonrpc/examples.rst: -------------------------------------------------------------------------------- 1 | Examples 2 | ======== 3 | 4 | Echo bot 5 | -------- 6 | .. include:: ../../../deltachat-rpc-client/examples/echobot_no_hooks.py 7 | :literal: 8 | 9 | Echo bot with hooks 10 | ------------------- 11 | .. include:: ../../../deltachat-rpc-client/examples/echobot.py 12 | :literal: 13 | 14 | Advanced echo bot 15 | ----------------- 16 | 17 | .. include:: ../../../deltachat-rpc-client/examples/echobot_advanced.py 18 | :literal: 19 | 20 | -------------------------------------------------------------------------------- /test-data/message/dkimchecks-2022-09-28/alice@gmail.com/forged-authres-added@example.com: -------------------------------------------------------------------------------- 1 | Authentication-Results: mx.google.com; 2 | spf=neutral (google.com: 89.22.108.212 is neither permitted nor denied by best guess record for domain of alice@delta.blinzeln.de) smtp.mailfrom=alice@delta.blinzeln.de 3 | From: forged-authres-added@example.com 4 | Authentication-Results: aaa.com; dkim=pass header.i=@example.com 5 | Authentication-Results: aaa.com; dkim=pass header.i=@example.com 6 | -------------------------------------------------------------------------------- /test-data/golden/test_outgoing_mua_msg_pgp: -------------------------------------------------------------------------------- 1 | Single#Chat#1001: bob@example.net [KEY bob@example.net] 2 | -------------------------------------------------------------------------------- 3 | Msg#1001: info (Contact#Contact#Info): Messages are end-to-end encrypted. [NOTICED][INFO] 4 | Msg#1002🔒: (Contact#Contact#1001): Heyho from DC [FRESH] 5 | Msg#1004🔒: Me (Contact#Contact#Self): Sending with DC again √ 6 | -------------------------------------------------------------------------------- 7 | -------------------------------------------------------------------------------- /test-data/message/dkimchecks-2022-09-28/alice@riseup.net/alice@fastmail.com: -------------------------------------------------------------------------------- 1 | Authentication-Results: mx1.riseup.net; 2 | dkim=pass (2048-bit key; unprotected) header.d=fastmail.com header.i=@fastmail.com header.a=rsa-sha256 header.s=fm2 header.b=ZyZhU7V7; 3 | dkim=pass (2048-bit key; unprotected) header.d=messagingengine.com header.i=@messagingengine.com header.a=rsa-sha256 header.s=fm2 header.b=GQt3UCVa; 4 | dkim-atps=neutral 5 | From: 6 | To: bot 7 | -------------------------------------------------------------------------------- /test-data/message/dkimchecks-2022-09-28/alice@yandex.ru/alice@hotmail.com: -------------------------------------------------------------------------------- 1 | Authentication-Results: myt6-95f0aaf173a0.qloud-c.yandex.net; spf=pass (myt6-95f0aaf173a0.qloud-c.yandex.net: domain of hotmail.com designates 40.92.89.36 as permitted sender, rule=[ip4:40.92.0.0/15]) smtp.mail=alice@hotmail.com; dkim=pass header.i=@hotmail.com 2 | ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=none; dmarc=none; 3 | dkim=none; arc=none 4 | From: 5 | To: 6 | -------------------------------------------------------------------------------- /test-data/message/dkimchecks-2022-09-28/alice@yandex.ru/alice@outlook.com: -------------------------------------------------------------------------------- 1 | Authentication-Results: myt6-0c6ff95e6b5b.qloud-c.yandex.net; spf=pass (myt6-0c6ff95e6b5b.qloud-c.yandex.net: domain of outlook.com designates 40.92.58.101 as permitted sender, rule=[ip4:40.92.0.0/15]) smtp.mail=alice@outlook.com; dkim=pass header.i=@outlook.com 2 | ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=none; dmarc=none; 3 | dkim=none; arc=none 4 | From: 5 | To: 6 | -------------------------------------------------------------------------------- /test-data/golden/test_outgoing_encrypted_msg: -------------------------------------------------------------------------------- 1 | Single#Chat#1001: bob@example.net [KEY bob@example.net] 2 | -------------------------------------------------------------------------------- 3 | Msg#1001: info (Contact#Contact#Info): Messages are end-to-end encrypted. [NOTICED][INFO] 4 | Msg#1002🔒: Me (Contact#Contact#Self): Test – This is encrypted, signed, and has an Autocrypt Header without prefer-encrypt=mutual. √ 5 | -------------------------------------------------------------------------------- 6 | -------------------------------------------------------------------------------- /test-data/message/dkimchecks_strip.py: -------------------------------------------------------------------------------- 1 | # Use with dkimchecks_strip.sh 2 | 3 | import sys 4 | 5 | inheader = False 6 | for l in sys.stdin: 7 | if inheader and (l.startswith(" ") or l.startswith("\t")): 8 | print(l, end='') 9 | continue 10 | else: 11 | inheader = False 12 | if l.startswith("Authentication-Results:") or l.startswith("From:") or l.startswith("To:") or l.startswith("ARC-Authentication-Results"): 13 | print(l, end='') 14 | inheader=True 15 | -------------------------------------------------------------------------------- /test-data/message/dkimchecks-2022-09-28/alice@e.email/alice@fastmail.com: -------------------------------------------------------------------------------- 1 | From: 2 | To: 3 | Authentication-Results: mail2.ecloud.global; 4 | dkim=pass header.d=fastmail.com header.s=fm2 header.b=bQ080jJU; 5 | dkim=pass header.d=messagingengine.com header.s=fm2 header.b=FVyMuSGb; 6 | dmarc=pass (policy=none) header.from=fastmail.com; 7 | spf=pass (mail2.ecloud.global: domain of alice@fastmail.com designates 66.111.4.28 as permitted sender) smtp.mailfrom=alice@fastmail.com 8 | -------------------------------------------------------------------------------- /python/doc/cffi/api.rst: -------------------------------------------------------------------------------- 1 | High Level API Reference 2 | ======================== 3 | 4 | - :class:`deltachat.Account` (your main entry point, creates the 5 | other classes) 6 | - :class:`deltachat.Contact` 7 | - :class:`deltachat.Chat` 8 | - :class:`deltachat.Message` 9 | 10 | .. autoclass:: deltachat.Account 11 | :members: 12 | 13 | .. autoclass:: deltachat.Contact 14 | :members: 15 | 16 | .. autoclass:: deltachat.Chat 17 | :members: 18 | 19 | .. autoclass:: deltachat.Message 20 | :members: 21 | -------------------------------------------------------------------------------- /test-data/message/dkimchecks-2022-09-28/alice@mail.ru/alice@hotmail.com: -------------------------------------------------------------------------------- 1 | ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=none; dmarc=none; 2 | dkim=none; arc=none 3 | From: 4 | To: 5 | Authentication-Results: mxs.mail.ru; spf=pass (mx200.i.mail.ru: domain of hotmail.com designates 40.92.73.37 as permitted sender) smtp.mailfrom=alice@hotmail.com smtp.helo=EUR04-HE1-obe.outbound.protection.outlook.com; 6 | dkim=pass header.d=hotmail.com; dmarc=pass header.from=alice@hotmail.com 7 | -------------------------------------------------------------------------------- /test-data/message/dkimchecks-2022-09-28/alice@mail.ru/alice@outlook.com: -------------------------------------------------------------------------------- 1 | ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=none; dmarc=none; 2 | dkim=none; arc=none 3 | From: 4 | To: 5 | Authentication-Results: mxs.mail.ru; spf=pass (mx222.i.mail.ru: domain of outlook.com designates 40.92.66.68 as permitted sender) smtp.mailfrom=alice@outlook.com smtp.helo=EUR01-VE1-obe.outbound.protection.outlook.com; 6 | dkim=pass header.d=outlook.com; dmarc=pass header.from=alice@outlook.com 7 | -------------------------------------------------------------------------------- /test-data/message/dkimchecks-2022-09-28/alice@posteo.de/alice@yandex.ru: -------------------------------------------------------------------------------- 1 | Authentication-Results: posteo.de; dmarc=pass (p=none dis=none) header.from=yandex.ru 2 | Authentication-Results: posteo.de; spf=pass smtp.mailfrom=yandex.ru 3 | Authentication-Results: posteo.de; 4 | dkim=pass (1024-bit key) header.d=yandex.ru header.i=@yandex.ru header.b=XsBIC1C8; 5 | dkim-atps=neutral 6 | Authentication-Results: iva4-143b1447cf50.qloud-c.yandex.net; dkim=pass header.i=@yandex.ru 7 | From: 8 | To: 9 | -------------------------------------------------------------------------------- /test-data/message/dkimchecks-2022-09-28/alice@posteo.de/alice@mail.ru: -------------------------------------------------------------------------------- 1 | Authentication-Results: posteo.de; dmarc=pass (p=reject dis=none) header.from=mail.ru 2 | Authentication-Results: posteo.de; spf=pass smtp.mailfrom=mail.ru 3 | Authentication-Results: posteo.de; 4 | dkim=pass (2048-bit key) header.d=mail.ru header.i=@mail.ru header.b=SGc3jC2I; 5 | dkim-atps=neutral 6 | From: 7 | To: 8 | Authentication-Results: smtpng1.m.smailru.net; auth=pass smtp.auth=alice@mail.ru smtp.mailfrom=alice@mail.ru 9 | -------------------------------------------------------------------------------- /python/tests/bench_test_setup.py: -------------------------------------------------------------------------------- 1 | """ 2 | run with: 3 | 4 | pytest -vv --durations=10 bench_empty.py 5 | 6 | to see timings of test setups. 7 | """ 8 | 9 | import pytest 10 | 11 | BENCH_NUM = 3 12 | 13 | 14 | class TestEmpty: 15 | def test_prepare_setup_measurings(self, acfactory): 16 | acfactory.get_online_accounts(BENCH_NUM) 17 | 18 | @pytest.mark.parametrize("num", range(BENCH_NUM + 1)) 19 | def test_setup_online_accounts(self, acfactory, num): 20 | acfactory.get_online_accounts(num) 21 | -------------------------------------------------------------------------------- /test-data/golden/test_old_message_1: -------------------------------------------------------------------------------- 1 | Single#Chat#10: Bob [PGP bob@example.net] 2 | -------------------------------------------------------------------------------- 3 | Msg#10: info (Contact#Contact#Info): Messages are guaranteed to be end-to-end encrypted from now on. [NOTICED][INFO 🛡️] 4 | Msg#11: info (Contact#Contact#Info): Bob sent a message from another device. [NOTICED][INFO 🛡️❌] 5 | Msg#12: (Contact#Contact#10): Message from Thunderbird [SEEN] 6 | -------------------------------------------------------------------------------- 7 | -------------------------------------------------------------------------------- /test-data/message/dkimchecks-2022-09-28/alice@icloud.com/alice@ik.me: -------------------------------------------------------------------------------- 1 | Authentication-Results: bimi.icloud.com; bimi=none 2 | Authentication-Results: dmarc.icloud.com; dmarc=pass header.from=ik.me 3 | Authentication-Results: dkim-verifier.icloud.com; 4 | dkim=pass (1024-bit key) header.d=ik.me header.i=@ik.me header.b=tu6YPP4A 5 | Authentication-Results: spf.icloud.com; spf=pass (spf.icloud.com: domain of alice@ik.me designates 83.166.143.174 as permitted sender) smtp.mailfrom=alice@ik.me 6 | From: 7 | To: 8 | -------------------------------------------------------------------------------- /test-data/message/text_alt_plain_html.eml: -------------------------------------------------------------------------------- 1 | Subject: mime-modified test 2 | Message-ID: 12345@testrun.org 3 | Date: Sat, 07 Dec 2019 19:00:27 +0000 4 | To: alice@example.org 5 | From: sender@testrun.org 6 | Content-Type: multipart/alternative; boundary="==BREAK==" 7 | 8 | 9 | --==BREAK== 10 | Content-Type: text/plain; charset=utf-8 11 | 12 | this is plain 13 | 14 | --==BREAK== 15 | Content-Type: text/html; charset=utf-8 16 | 17 | 18 |

19 | this is html 20 |

21 | 22 | 23 | --==BREAK==-- 24 | -------------------------------------------------------------------------------- /proptest-regressions/dc_strencode.txt: -------------------------------------------------------------------------------- 1 | # Seeds for failure cases proptest has generated in the past. It is 2 | # automatically read and these particular cases re-run before any 3 | # novel cases are generated. 4 | # 5 | # It is recommended to check this file in to source control so that 6 | # everyone who runs the test benefits from these saved cases. 7 | cc 679506fe9ac59df773f8cfa800fdab5f0a32fe49d2ab370394000a1aa5bc2a72 # shrinks to buf = "%0A" 8 | cc e34960438edb2426904b44fb4215154e7e2880f2fd1c3183b98bfcc76fec4882 # shrinks to input = " 0" 9 | -------------------------------------------------------------------------------- /test-data/message/mail_with_cc.txt: -------------------------------------------------------------------------------- 1 | Return-Path: 2 | Received: from hq5.merlinux.eu 3 | by hq5.merlinux.eu (Dovecot) with LMTP id yRKOBakcfV1AewAAPzvFDg 4 | ; Sat, 14 Sep 2019 19:00:25 +0200 5 | Received: from localhost (unknown 7.165.105.24]) 6 | by hq5.merlinux.eu (Postfix) with ESMTPSA id 8D9844E023; 7 | Sat, 14 Sep 2019 19:00:22 +0200 (CEST) 8 | message-id: <2dfdbde7@example.org> 9 | Date: Sat, 14 Sep 2019 19:00:13 +0200 10 | From: lmn 11 | To: abc 12 | CC: def 13 | 14 | hi 15 | -------------------------------------------------------------------------------- /test-data/message/mail_with_message_id.txt: -------------------------------------------------------------------------------- 1 | Return-Path: 2 | Received: from hq5.merlinux.eu 3 | by hq5.merlinux.eu (Dovecot) with LMTP id yRKOBakcfV1AewAAPzvFDg 4 | ; Sat, 14 Sep 2019 19:00:25 +0200 5 | Received: from localhost (unknown 7.165.105.24]) 6 | by hq5.merlinux.eu (Postfix) with ESMTPSA id 8D9844E023; 7 | Sat, 14 Sep 2019 19:00:22 +0200 (CEST) 8 | message-id: <2dfdbde7@example.org> 9 | Date: Sat, 14 Sep 2019 19:00:13 +0200 10 | From: lmn 11 | To: abc , def , 12 | jik 13 | 14 | -------------------------------------------------------------------------------- /test-data/message/dkimchecks-2022-09-28/alice@icloud.com/alice@aol.com: -------------------------------------------------------------------------------- 1 | Authentication-Results: bimi.icloud.com; bimi=none 2 | Authentication-Results: dmarc.icloud.com; dmarc=pass header.from=aol.com 3 | Authentication-Results: dkim-verifier.icloud.com; 4 | dkim=pass (2048-bit key) header.d=aol.com header.i=@aol.com header.b=XubAwo48 5 | Authentication-Results: spf.icloud.com; spf=pass (spf.icloud.com: domain of alice@aol.com designates 87.248.110.84 as permitted sender) smtp.mailfrom=alice@aol.com 6 | From: 7 | To: 8 | -------------------------------------------------------------------------------- /test-data/message/dkimchecks-2022-09-28/alice@posteo.de/alice@fastmail.com: -------------------------------------------------------------------------------- 1 | Authentication-Results: posteo.de; dmarc=pass (p=none dis=none) header.from=fastmail.com 2 | Authentication-Results: posteo.de; spf=pass smtp.mailfrom=fastmail.com 3 | Authentication-Results: posteo.de; 4 | dkim=pass (2048-bit key) header.d=fastmail.com header.i=@fastmail.com header.b=tuorMG/I; 5 | dkim=pass (2048-bit key) header.d=messagingengine.com header.i=@messagingengine.com header.b=mwBYuGTq; 6 | dkim-atps=neutral 7 | From: 8 | To: 9 | -------------------------------------------------------------------------------- /test-data/message/dkimchecks-2022-09-28/alice@posteo.de/alice@hotmail.com: -------------------------------------------------------------------------------- 1 | Authentication-Results: posteo.de; dmarc=pass (p=none dis=none) header.from=hotmail.com 2 | Authentication-Results: posteo.de; spf=pass smtp.mailfrom=hotmail.com 3 | Authentication-Results: posteo.de; 4 | dkim=pass (2048-bit key) header.d=hotmail.com header.i=@hotmail.com header.b=aqo8efk9; 5 | dkim-atps=neutral 6 | ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=none; dmarc=none; 7 | dkim=none; arc=none 8 | From: 9 | To: 10 | -------------------------------------------------------------------------------- /test-data/message/dkimchecks-2022-09-28/alice@posteo.de/alice@outlook.com: -------------------------------------------------------------------------------- 1 | Authentication-Results: posteo.de; dmarc=pass (p=none dis=none) header.from=outlook.com 2 | Authentication-Results: posteo.de; spf=pass smtp.mailfrom=outlook.com 3 | Authentication-Results: posteo.de; 4 | dkim=pass (2048-bit key) header.d=outlook.com header.i=@outlook.com header.b=uk70iBwu; 5 | dkim-atps=neutral 6 | ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=none; dmarc=none; 7 | dkim=none; arc=none 8 | From: 9 | To: 10 | -------------------------------------------------------------------------------- /test-data/message/dkimchecks-2022-09-28/alice@icloud.com/alice@buzon.uy: -------------------------------------------------------------------------------- 1 | Authentication-Results: bimi.icloud.com; bimi=none 2 | Authentication-Results: dmarc.icloud.com; dmarc=pass header.from=buzon.uy 3 | Authentication-Results: dkim-verifier.icloud.com; 4 | dkim=pass (2048-bit key) header.d=buzon.uy header.i=@buzon.uy header.b=RIQdNWNe 5 | Authentication-Results: spf.icloud.com; spf=pass (spf.icloud.com: domain of alice@buzon.uy designates 185.101.93.79 as permitted sender) smtp.mailfrom=alice@buzon.uy 6 | From: 7 | To: 8 | -------------------------------------------------------------------------------- /test-data/message/dkimchecks-2022-09-28/alice@ik.me/alice@yandex.ru: -------------------------------------------------------------------------------- 1 | Authentication-Results: mx.infomaniak.com; dmarc=pass (p=none dis=none) header.from=yandex.ru 2 | Authentication-Results: mx.infomaniak.com; 3 | dkim=pass (1024-bit key; unprotected) header.d=yandex.ru header.i=@yandex.ru header.b="lfDaLIBg"; 4 | dkim-atps=neutral 5 | Authentication-Results: iva4-143b1447cf50.qloud-c.yandex.net; dkim=pass header.i=@yandex.ru 6 | From: 7 | To: 8 | Authentication-Results: mx.infomaniak.com; spf=pass smtp.mailfrom=yandex.ru 9 | -------------------------------------------------------------------------------- /test-data/message/text_alt_plain.eml: -------------------------------------------------------------------------------- 1 | Subject: mime-modified test 2 | Message-ID: 12345@testrun.org 3 | Date: Sat, 07 Dec 2019 19:00:27 +0000 4 | To: recp@testrun.org 5 | From: sender@testrun.org 6 | Content-Type: multipart/alternative; boundary="==BREAK==" 7 | 8 | 9 | --==BREAK== 10 | Content-Type: text/plain; charset=utf-8 11 | 12 | mime-modified should not be set set as there is no html and no special stuff; 13 | although not being a delta-message. 14 | test some special html-characters as < > and & but also " and ' :) 15 | 16 | --==BREAK==-- 17 | -------------------------------------------------------------------------------- /test-data/golden/test_broadcast_joining_golden_alice: -------------------------------------------------------------------------------- 1 | OutBroadcast#Chat#1001: My Channel [1 member(s)] Icon: e9b6c7a78aa2e4f415644f55a553e73.png 2 | -------------------------------------------------------------------------------- 3 | Msg#1001: info (Contact#Contact#Info): Messages are end-to-end encrypted. [NOTICED][INFO] 4 | Msg#1002🔒: Me (Contact#Contact#Self): You changed the group image. [INFO] √ 5 | Msg#1006🔒: Me (Contact#Contact#Self): Member bob@example.net added. [INFO] √ 6 | -------------------------------------------------------------------------------- 7 | -------------------------------------------------------------------------------- /test-data/golden/test_sync_broadcast_alice1: -------------------------------------------------------------------------------- 1 | OutBroadcast#Chat#1001: Channel [0 member(s)] 2 | -------------------------------------------------------------------------------- 3 | Msg#1001: info (Contact#Contact#Info): Messages are end-to-end encrypted. [NOTICED][INFO] 4 | Msg#1007🔒: Me (Contact#Contact#Self): Member bob@example.net added. [INFO] √ 5 | Msg#1009🔒: Me (Contact#Contact#Self): hi √ 6 | Msg#1010🔒: Me (Contact#Contact#Self): You removed member bob@example.net. [INFO] √ 7 | -------------------------------------------------------------------------------- 8 | -------------------------------------------------------------------------------- /test-data/golden/test_sync_broadcast_alice2: -------------------------------------------------------------------------------- 1 | OutBroadcast#Chat#1001: Channel [0 member(s)] 2 | -------------------------------------------------------------------------------- 3 | Msg#1002: info (Contact#Contact#Info): Messages are end-to-end encrypted. [NOTICED][INFO] 4 | Msg#1007🔒: Me (Contact#Contact#Self): Member bob@example.net added. [INFO] √ 5 | Msg#1009🔒: Me (Contact#Contact#Self): hi √ 6 | Msg#1010🔒: Me (Contact#Contact#Self): You removed member bob@example.net. [INFO] √ 7 | -------------------------------------------------------------------------------- 8 | -------------------------------------------------------------------------------- /test-data/message/dkimchecks-2022-09-28/alice@icloud.com/alice@yahoo.com: -------------------------------------------------------------------------------- 1 | Authentication-Results: bimi.icloud.com; bimi=none 2 | Authentication-Results: dmarc.icloud.com; dmarc=pass header.from=yahoo.com 3 | Authentication-Results: dkim-verifier.icloud.com; 4 | dkim=pass (2048-bit key) header.d=yahoo.com header.i=@yahoo.com header.b=ku0XoLqQ 5 | Authentication-Results: spf.icloud.com; spf=pass (spf.icloud.com: domain of alice@yahoo.com designates 77.238.179.83 as permitted sender) smtp.mailfrom=alice@yahoo.com 6 | From: 7 | To: 8 | -------------------------------------------------------------------------------- /deltachat-rpc-server/npm-package/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "license": "MPL-2.0", 3 | "main": "index.js", 4 | "name": "@deltachat/stdio-rpc-server", 5 | "optionalDependencies": {}, 6 | "peerDependencies": { 7 | "@deltachat/jsonrpc-client": "*" 8 | }, 9 | "repository": { 10 | "type": "git", 11 | "url": "https://github.com/chatmail/core.git" 12 | }, 13 | "scripts": { 14 | "prepack": "node scripts/update_optional_dependencies_and_version.js" 15 | }, 16 | "type": "module", 17 | "types": "index.d.ts", 18 | "version": "2.34.0" 19 | } 20 | -------------------------------------------------------------------------------- /python/doc/cffi/intro.rst: -------------------------------------------------------------------------------- 1 | Introduction 2 | ============ 3 | 4 | CFFI bindings are available via the `deltachat `_ Python package. 5 | The package contains both the Python bindings and the Delta Chat core. 6 | It is provided only for Linux. 7 | 8 | The ``deltachat`` Python package provides two layers of bindings for the 9 | core Rust-library of the https://delta.chat messaging ecosystem: 10 | low-level CFFI bindings to the C interface of the Delta Chat core 11 | and high-level Python bindings built on top of CFFI bindings. 12 | -------------------------------------------------------------------------------- /test-data/message/dkimchecks-2022-09-28/alice@icloud.com/alice@disroot.org: -------------------------------------------------------------------------------- 1 | Authentication-Results: bimi.icloud.com; bimi=none 2 | Authentication-Results: dmarc.icloud.com; dmarc=pass header.from=disroot.org 3 | Authentication-Results: dkim-verifier.icloud.com; 4 | dkim=pass (2048-bit key) header.d=disroot.org header.i=@disroot.org header.b=CTWkc989 5 | Authentication-Results: spf.icloud.com; spf=pass (spf.icloud.com: domain of alice@disroot.org designates 178.21.23.139 as permitted sender) smtp.mailfrom=alice@disroot.org 6 | From: 7 | To: 8 | -------------------------------------------------------------------------------- /test-data/message/dkimchecks-2022-09-28/alice@icloud.com/alice@mail.de: -------------------------------------------------------------------------------- 1 | Authentication-Results: bimi.icloud.com; bimi=skipped reason="insufficient dmarc" 2 | Authentication-Results: dmarc.icloud.com; dmarc=pass header.from=mail.de 3 | Authentication-Results: dkim-verifier.icloud.com; 4 | dkim=pass (2048-bit key) header.d=mail.de header.i=@mail.de header.b=dLA2UUO1 5 | Authentication-Results: spf.icloud.com; spf=pass (spf.icloud.com: domain of alice@mail.de designates 62.201.172.25 as permitted sender) smtp.mailfrom=alice@mail.de 6 | From: 7 | To: 8 | -------------------------------------------------------------------------------- /deltachat-jsonrpc/typescript/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "alwaysStrict": true, 4 | "strict": true, 5 | "sourceMap": true, 6 | "strictNullChecks": true, 7 | "rootDir": ".", 8 | "outDir": "dist", 9 | "lib": ["ES2017", "dom"], 10 | "target": "ES2017", 11 | "module": "es2020", 12 | "declaration": true, 13 | "esModuleInterop": true, 14 | "moduleResolution": "node", 15 | "noImplicitAny": true, 16 | "isolatedModules": true 17 | }, 18 | "include": ["*.ts", "test/*.ts"], 19 | "compileOnSave": false 20 | } 21 | -------------------------------------------------------------------------------- /test-data/message/dkimchecks-2022-09-28/alice@ik.me/alice@hotmail.com: -------------------------------------------------------------------------------- 1 | Authentication-Results: mx.infomaniak.com; dmarc=pass (p=none dis=none) header.from=hotmail.com 2 | Authentication-Results: mx.infomaniak.com; 3 | dkim=pass (2048-bit key; unprotected) header.d=hotmail.com header.i=@hotmail.com header.b="Dbq+lYiV"; 4 | dkim-atps=neutral 5 | ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=none; dmarc=none; 6 | dkim=none; arc=none 7 | From: 8 | To: 9 | Authentication-Results: mx.infomaniak.com; spf=pass smtp.mailfrom=hotmail.com 10 | -------------------------------------------------------------------------------- /test-data/message/dkimchecks-2022-09-28/alice@ik.me/alice@outlook.com: -------------------------------------------------------------------------------- 1 | Authentication-Results: mx.infomaniak.com; dmarc=pass (p=none dis=none) header.from=outlook.com 2 | Authentication-Results: mx.infomaniak.com; 3 | dkim=pass (2048-bit key; unprotected) header.d=outlook.com header.i=@outlook.com header.b="fGclt/Vk"; 4 | dkim-atps=neutral 5 | ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=none; dmarc=none; 6 | dkim=none; arc=none 7 | From: 8 | To: 9 | Authentication-Results: mx.infomaniak.com; spf=pass smtp.mailfrom=outlook.com 10 | -------------------------------------------------------------------------------- /test-data/message/webxdc_bad_extension.eml: -------------------------------------------------------------------------------- 1 | Subject: webxdc object attached 2 | Message-ID: 67890@example.org 3 | Date: Fri, 03 Dec 2021 10:00:27 +0000 4 | To: alice@example.org 5 | From: bob@example.org 6 | Chat-Version: 1.0 7 | Content-Type: multipart/mixed; boundary="==BREAK==" 8 | 9 | 10 | --==BREAK== 11 | Content-Type: text/plain; charset=utf-8 12 | 13 | webxdc with bad extension and bad content. 14 | 15 | --==BREAK== 16 | Content-Type: application/webxdc+zip 17 | Content-Disposition: attachment; filename=index.html 18 | 19 | hey! 20 | 21 | --==BREAK==-- 22 | -------------------------------------------------------------------------------- /python/mypy.ini: -------------------------------------------------------------------------------- 1 | [mypy] 2 | 3 | [mypy-py.*] 4 | ignore_missing_imports = True 5 | 6 | [mypy-deltachat.capi.*] 7 | ignore_missing_imports = True 8 | 9 | [mypy-pluggy.*] 10 | ignore_missing_imports = True 11 | 12 | [mypy-cffi.*] 13 | ignore_missing_imports = True 14 | 15 | [mypy-imapclient.*] 16 | ignore_missing_imports = True 17 | 18 | [mypy-pytest.*] 19 | ignore_missing_imports = True 20 | 21 | [mypy-_pytest.*] 22 | ignore_missing_imports = True 23 | 24 | [mypy-imap_tools.*] 25 | ignore_missing_imports = True 26 | 27 | [mypy-distutils.*] 28 | ignore_missing_imports = True 29 | -------------------------------------------------------------------------------- /python/doc/jsonrpc/intro.rst: -------------------------------------------------------------------------------- 1 | Introduction 2 | ============ 3 | 4 | JSON-RPC bindings are available via the `deltachat-rpc-client `_ Python package. 5 | This package provides only the Python bindings and requires ``deltachat-rpc-server`` binary to be installed. 6 | `deltachat-rpc-server `_ package provides ``deltachat-rpc-server`` binary for Linux, Windows, macOS and Android. 7 | 8 | RPC client connects to standalone Delta Chat RPC server ``deltachat-rpc-server`` and provides Python interface to it. 9 | -------------------------------------------------------------------------------- /scripts/make-python-testenv.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | # 3 | # Script to create or update a python development environment. 4 | # It rebuilds the core and bindings as needed. 5 | # 6 | # After running the script, you can either 7 | # run `pytest` directly with `venv/bin/pytest python/` 8 | # or activate the environment with `. venv/bin/activate` 9 | # and run `pytest` from there. 10 | set -euo pipefail 11 | 12 | export DCC_RS_TARGET=debug 13 | export DCC_RS_DEV="$PWD" 14 | cargo build -p deltachat_ffi 15 | 16 | tox -c python -e py --devenv venv 17 | venv/bin/pip install --upgrade pip 18 | -------------------------------------------------------------------------------- /test-data/message/dkimchecks-2022-09-28/alice@icloud.com/alice@gmail.com: -------------------------------------------------------------------------------- 1 | Authentication-Results: bimi.icloud.com; bimi=skipped reason="insufficient dmarc" 2 | Authentication-Results: dmarc.icloud.com; dmarc=pass header.from=gmail.com 3 | Authentication-Results: dkim-verifier.icloud.com; 4 | dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=HYnahEVt 5 | Authentication-Results: spf.icloud.com; spf=pass (spf.icloud.com: domain of alice@gmail.com designates 209.85.221.67 as permitted sender) smtp.mailfrom=alice@gmail.com 6 | From: 7 | To: 8 | -------------------------------------------------------------------------------- /test-data/message/dkimchecks-2022-09-28/alice@icloud.com/alice@mailo.com: -------------------------------------------------------------------------------- 1 | Authentication-Results: bimi.icloud.com; bimi=skipped reason="insufficient dmarc" 2 | Authentication-Results: dmarc.icloud.com; dmarc=pass header.from=mailo.com 3 | Authentication-Results: dkim-verifier.icloud.com; 4 | dkim=pass (1024-bit key) header.d=mailo.com header.i=@mailo.com header.b=iBgqeTn7 5 | Authentication-Results: spf.icloud.com; spf=pass (spf.icloud.com: domain of alice@mailo.com designates 213.182.54.11 as permitted sender) smtp.mailfrom=alice@mailo.com 6 | From: 7 | To: 8 | -------------------------------------------------------------------------------- /test-data/message/dkimchecks-2022-09-28/alice@icloud.com/alice@posteo.de: -------------------------------------------------------------------------------- 1 | Authentication-Results: bimi.icloud.com; bimi=skipped reason="insufficient dmarc" 2 | Authentication-Results: dmarc.icloud.com; dmarc=pass header.from=posteo.de 3 | Authentication-Results: dkim-verifier.icloud.com; 4 | dkim=pass (2048-bit key) header.d=posteo.de header.i=@posteo.de header.b=XcYh4i4k 5 | Authentication-Results: spf.icloud.com; spf=pass (spf.icloud.com: domain of alice@posteo.de designates 185.67.36.66 as permitted sender) smtp.mailfrom=alice@posteo.de 6 | From: 7 | To: 8 | -------------------------------------------------------------------------------- /test-data/message/dkimchecks-2022-09-28/alice@e.email/alice@outlook.com: -------------------------------------------------------------------------------- 1 | ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=none; dmarc=none; 2 | dkim=none; arc=none 3 | From: 4 | To: 5 | Authentication-Results: mail3.ecloud.global; 6 | dkim=pass header.d=outlook.com header.s=selector1 header.b=MqNsAJKf; 7 | arc=pass ("microsoft.com:s=arcselector9901:i=1"); 8 | dmarc=pass (policy=none) header.from=outlook.com; 9 | spf=pass (mail3.ecloud.global: domain of alice@outlook.com designates 40.92.66.84 as permitted sender) smtp.mailfrom=alice@outlook.com 10 | -------------------------------------------------------------------------------- /test-data/message/dkimchecks-2022-09-28/alice@ik.me/alice@fastmail.com: -------------------------------------------------------------------------------- 1 | Authentication-Results: mx.infomaniak.com; dmarc=pass (p=none dis=none) header.from=fastmail.com 2 | Authentication-Results: mx.infomaniak.com; 3 | dkim=pass (2048-bit key; unprotected) header.d=fastmail.com header.i=@fastmail.com header.b="KMpU4FxP"; 4 | dkim=pass (2048-bit key; unprotected) header.d=messagingengine.com header.i=@messagingengine.com header.b="AQlzEcHV"; 5 | dkim-atps=neutral 6 | From: 7 | To: 8 | Authentication-Results: mx.infomaniak.com; spf=pass smtp.mailfrom=fastmail.com 9 | -------------------------------------------------------------------------------- /test-data/message/dkimchecks-2022-09-28/alice@zohomail.eu/alice@ik.me: -------------------------------------------------------------------------------- 1 | Authentication-Results: mx.zohomail.eu; 2 | dkim=pass; 3 | spf=pass (zohomail.eu: domain of ik.me designates 84.16.66.168 as permitted sender) smtp.mailfrom=alice@ik.me; 4 | dmarc=pass(p=reject dis=none) header.from=ik.me 5 | ARC-Authentication-Results: i=1; mx.zohomail.eu; 6 | dkim=pass; 7 | spf=pass (zohomail.eu: domain of ik.me designates 84.16.66.168 as permitted sender) smtp.mailfrom=alice@ik.me; 8 | dmarc=pass header.from= (p=reject dis=none) 9 | From: 10 | To: 11 | -------------------------------------------------------------------------------- /test-data/message/dkimchecks-2022-09-28/alice@e.email/alice@hotmail.com: -------------------------------------------------------------------------------- 1 | ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=none; dmarc=none; 2 | dkim=none; arc=none 3 | From: 4 | To: 5 | Authentication-Results: mail3.ecloud.global; 6 | dkim=pass header.d=hotmail.com header.s=selector1 header.b="ECc21y/J"; 7 | arc=pass ("microsoft.com:s=arcselector9901:i=1"); 8 | dmarc=pass (policy=none) header.from=hotmail.com; 9 | spf=pass (mail3.ecloud.global: domain of alice@hotmail.com designates 40.92.68.54 as permitted sender) smtp.mailfrom=alice@hotmail.com 10 | -------------------------------------------------------------------------------- /test-data/message/dkimchecks-2022-09-28/alice@icloud.com/alice@riseup.net: -------------------------------------------------------------------------------- 1 | Authentication-Results: bimi.icloud.com; bimi=skipped reason="insufficient dmarc" 2 | Authentication-Results: dmarc.icloud.com; dmarc=pass header.from=riseup.net 3 | Authentication-Results: dkim-verifier.icloud.com; 4 | dkim=pass (1024-bit key) header.d=riseup.net header.i=@riseup.net header.b=pOxpthcq 5 | Authentication-Results: spf.icloud.com; spf=pass (spf.icloud.com: domain of alice@riseup.net designates 198.252.153.129 as permitted sender) smtp.mailfrom=alice@riseup.net 6 | From: 7 | To: 8 | -------------------------------------------------------------------------------- /test-data/message/dkimchecks-2022-09-28/alice@nauta.cu/forged@disroot.org: -------------------------------------------------------------------------------- 1 | Authentication-Results: box.hispanilandia.net; 2 | dkim=fail reason="signature verification failed" (2048-bit key; secure) header.d=disroot.org header.i=@disroot.org header.b="kqh3WUKq"; 3 | dkim-atps=neutral 4 | Authentication-Results: box.hispanilandia.net; dmarc=pass (p=quarantine dis=none) header.from=disroot.org 5 | Authentication-Results: box.hispanilandia.net; spf=pass smtp.mailfrom=adbenitez@disroot.org 6 | From: forged@disroot.org 7 | 8 | This is an email from adb's mailing list that pretends being sent by forged@disroot.org. -------------------------------------------------------------------------------- /test-data/message/dkimchecks-2022-09-28/alice@zohomail.eu/alice@mail.de: -------------------------------------------------------------------------------- 1 | Authentication-Results: mx.zohomail.eu; 2 | dkim=pass; 3 | spf=pass (zohomail.eu: domain of mail.de designates 62.201.172.25 as permitted sender) smtp.mailfrom=alice@mail.de; 4 | dmarc=pass(p=none dis=none) header.from=mail.de 5 | ARC-Authentication-Results: i=1; mx.zohomail.eu; 6 | dkim=pass; 7 | spf=pass (zohomail.eu: domain of mail.de designates 62.201.172.25 as permitted sender) smtp.mailfrom=alice@mail.de; 8 | dmarc=pass header.from= (p=none dis=none) 9 | From: 10 | To: 11 | -------------------------------------------------------------------------------- /test-data/message/dkimchecks-2022-09-28/alice@zohomail.eu/alice@aol.com: -------------------------------------------------------------------------------- 1 | Authentication-Results: mx.zohomail.eu; 2 | dkim=pass; 3 | spf=pass (zohomail.eu: domain of aol.com designates 77.238.177.146 as permitted sender) smtp.mailfrom=alice@aol.com; 4 | dmarc=pass(p=reject dis=none) header.from=aol.com 5 | ARC-Authentication-Results: i=1; mx.zohomail.eu; 6 | dkim=pass; 7 | spf=pass (zohomail.eu: domain of aol.com designates 77.238.177.146 as permitted sender) smtp.mailfrom=alice@aol.com; 8 | dmarc=pass header.from= (p=reject dis=none) 9 | From: 10 | To: 11 | -------------------------------------------------------------------------------- /test-data/golden/test_broadcast_joining_golden_bob: -------------------------------------------------------------------------------- 1 | InBroadcast#Chat#2002: My Channel [2 member(s)] Icon: e9b6c7a78aa2e4f415644f55a553e73.png 2 | -------------------------------------------------------------------------------- 3 | Msg#2003: info (Contact#Contact#Info): Messages are end-to-end encrypted. [NOTICED][INFO] 4 | Msg#2004: info (Contact#Contact#Info): Alice invited you to join this channel. 5 | 6 | Waiting for the device of Alice to reply… [NOTICED][INFO] 7 | Msg#2007🔒: (Contact#Contact#2001): You joined the channel. [FRESH][INFO] 8 | -------------------------------------------------------------------------------- 9 | -------------------------------------------------------------------------------- /test-data/message/dkimchecks-2022-09-28/alice@zohomail.eu/alice@buzon.uy: -------------------------------------------------------------------------------- 1 | Authentication-Results: mx.zohomail.eu; 2 | dkim=pass; 3 | spf=pass (zohomail.eu: domain of buzon.uy designates 185.101.93.79 as permitted sender) smtp.mailfrom=alice@buzon.uy; 4 | dmarc=pass(p=reject dis=none) header.from=buzon.uy 5 | ARC-Authentication-Results: i=1; mx.zohomail.eu; 6 | dkim=pass; 7 | spf=pass (zohomail.eu: domain of buzon.uy designates 185.101.93.79 as permitted sender) smtp.mailfrom=alice@buzon.uy; 8 | dmarc=pass header.from= (p=reject dis=none) 9 | From: 10 | To: 11 | -------------------------------------------------------------------------------- /test-data/message/dkimchecks-2022-09-28/alice@zohomail.eu/alice@mailo.com: -------------------------------------------------------------------------------- 1 | Authentication-Results: mx.zohomail.eu; 2 | dkim=pass; 3 | spf=pass (zohomail.eu: domain of mailo.com designates 213.182.54.11 as permitted sender) smtp.mailfrom=alice@mailo.com; 4 | dmarc=pass(p=none dis=none) header.from=mailo.com 5 | ARC-Authentication-Results: i=1; mx.zohomail.eu; 6 | dkim=pass; 7 | spf=pass (zohomail.eu: domain of mailo.com designates 213.182.54.11 as permitted sender) smtp.mailfrom=alice@mailo.com; 8 | dmarc=pass header.from= (p=none dis=none) 9 | From: 10 | To: 11 | -------------------------------------------------------------------------------- /test-data/message/dkimchecks-2022-09-28/alice@zohomail.eu/alice@posteo.de: -------------------------------------------------------------------------------- 1 | Authentication-Results: mx.zohomail.eu; 2 | dkim=pass; 3 | spf=pass (zohomail.eu: domain of posteo.de designates 185.67.36.65 as permitted sender) smtp.mailfrom=alice@posteo.de; 4 | dmarc=pass(p=none dis=none) header.from=posteo.de 5 | ARC-Authentication-Results: i=1; mx.zohomail.eu; 6 | dkim=pass; 7 | spf=pass (zohomail.eu: domain of posteo.de designates 185.67.36.65 as permitted sender) smtp.mailfrom=alice@posteo.de; 8 | dmarc=pass header.from= (p=none dis=none) 9 | From: 10 | To: 11 | -------------------------------------------------------------------------------- /deltachat-ffi/Doxyfile.css: -------------------------------------------------------------------------------- 1 | 2 | :root { 3 | --accent: hsl(0 0% 85%); 4 | } 5 | 6 | @media (prefers-color-scheme: dark) { 7 | :root { 8 | --accent: hsl(0 0% 25%); 9 | } 10 | } 11 | 12 | /* the code snippet frame, defaults to white which tends to get badly readable in combination with explaining text around */ 13 | div.fragment { 14 | background-color: var(--accent); 15 | border: 0; 16 | padding: 1em; 17 | border-radius: 6px; 18 | } 19 | 20 | code { 21 | background-color: var(--accent); 22 | padding-left: .5em; 23 | padding-right: .5em; 24 | border-radius: 6px; 25 | } 26 | 27 | li { 28 | margin-bottom: .5em; 29 | } -------------------------------------------------------------------------------- /.github/dependabot.yml: -------------------------------------------------------------------------------- 1 | version: 2 2 | updates: 3 | - package-ecosystem: "cargo" 4 | directory: "/" 5 | schedule: 6 | interval: "monthly" 7 | commit-message: 8 | prefix: "chore(cargo)" 9 | open-pull-requests-limit: 50 10 | cooldown: 11 | default-days: 7 12 | 13 | # Keep GitHub Actions up to date. 14 | # 15 | - package-ecosystem: "github-actions" 16 | directory: "/" 17 | schedule: 18 | interval: "weekly" 19 | cooldown: 20 | default-days: 7 21 | -------------------------------------------------------------------------------- /test-data/golden/test_old_message_2: -------------------------------------------------------------------------------- 1 | Single#Chat#10: Bob [PGP bob@example.net] 2 | -------------------------------------------------------------------------------- 3 | Msg#10: info (Contact#Contact#Info): Messages are guaranteed to be end-to-end encrypted from now on. [NOTICED][INFO 🛡️] 4 | Msg#11: info (Contact#Contact#Info): Bob sent a message from another device. [NOTICED][INFO 🛡️❌] 5 | Msg#12: (Contact#Contact#10): Somewhat old message [FRESH] 6 | Msg#13: (Contact#Contact#10): Even older message, that must NOT be shown before the info message [SEEN] 7 | -------------------------------------------------------------------------------- 8 | -------------------------------------------------------------------------------- /test-data/message/dkimchecks-2022-09-28/alice@zohomail.eu/alice@gmail.com: -------------------------------------------------------------------------------- 1 | Authentication-Results: mx.zohomail.eu; 2 | dkim=pass; 3 | spf=pass (zohomail.eu: domain of _spf.google.com designates 209.85.221.68 as permitted sender) smtp.mailfrom=alice@gmail.com; 4 | dmarc=pass(p=none dis=none) header.from=gmail.com 5 | ARC-Authentication-Results: i=1; mx.zohomail.eu; 6 | dkim=pass; 7 | spf=pass (zohomail.eu: domain of _spf.google.com designates 209.85.221.68 as permitted sender) smtp.mailfrom=alice@gmail.com; 8 | dmarc=pass header.from= (p=none dis=none) 9 | From: 10 | To: 11 | -------------------------------------------------------------------------------- /test-data/message/dkimchecks-2022-09-28/alice@zohomail.eu/alice@riseup.net: -------------------------------------------------------------------------------- 1 | Authentication-Results: mx.zohomail.eu; 2 | dkim=pass; 3 | spf=pass (zohomail.eu: domain of riseup.net designates 198.252.153.129 as permitted sender) smtp.mailfrom=alice@riseup.net; 4 | dmarc=pass(p=none dis=none) header.from=riseup.net 5 | ARC-Authentication-Results: i=1; mx.zohomail.eu; 6 | dkim=pass; 7 | spf=pass (zohomail.eu: domain of riseup.net designates 198.252.153.129 as permitted sender) smtp.mailfrom=alice@riseup.net; 8 | dmarc=pass header.from= (p=none dis=none) 9 | From: 10 | To: 11 | -------------------------------------------------------------------------------- /test-data/message/videochat_invitation.eml: -------------------------------------------------------------------------------- 1 | Content-Type: text/plain; charset=utf-8 2 | Subject: Message from user 3 | Message-ID: 4 | Date: Mon, 20 Jul 2020 14:28:30 +0000 5 | X-Mailer: Delta Chat Core 1.40.0/CLI 6 | Chat-Version: 1.0 7 | Chat-Content: videochat-invitation 8 | Chat-Webrtc-Room: https://example.org/p2p/?roomname=6HiduoAn4xN 9 | To: 10 | From: "=?utf-8?q??=" 11 | 12 | You are invited to an videochat, click https://example.org/p2p/?roomname=6HiduoAn4xN to join. 13 | 14 | -- 15 | Sent with my Delta Chat Messenger: https://delta.chat 16 | -------------------------------------------------------------------------------- /test-data/message/dkimchecks-2022-09-28/alice@zohomail.eu/alice@fastmail.com: -------------------------------------------------------------------------------- 1 | Authentication-Results: mx.zohomail.eu; 2 | dkim=pass; 3 | spf=pass (zohomail.eu: domain of fastmail.com designates 66.111.4.28 as permitted sender) smtp.mailfrom=alice@fastmail.com; 4 | dmarc=pass(p=none dis=none) header.from=fastmail.com 5 | ARC-Authentication-Results: i=1; mx.zohomail.eu; 6 | dkim=pass; 7 | spf=pass (zohomail.eu: domain of fastmail.com designates 66.111.4.28 as permitted sender) smtp.mailfrom=alice@fastmail.com; 8 | dmarc=pass header.from= (p=none dis=none) 9 | From: 10 | To: 11 | -------------------------------------------------------------------------------- /test-data/message/dkimchecks-2022-09-28/alice@zohomail.eu/alice@icloud.com: -------------------------------------------------------------------------------- 1 | Authentication-Results: mx.zohomail.eu; 2 | dkim=pass; 3 | spf=pass (zohomail.eu: domain of icloud.com designates 17.57.155.16 as permitted sender) smtp.mailfrom=alice@icloud.com; 4 | dmarc=pass(p=quarantine dis=none) header.from=icloud.com 5 | ARC-Authentication-Results: i=1; mx.zohomail.eu; 6 | dkim=pass; 7 | spf=pass (zohomail.eu: domain of icloud.com designates 17.57.155.16 as permitted sender) smtp.mailfrom=alice@icloud.com; 8 | dmarc=pass header.from= (p=quarantine dis=none) 9 | From: 10 | To: 11 | -------------------------------------------------------------------------------- /deltachat-rpc-client/tox.ini: -------------------------------------------------------------------------------- 1 | [tox] 2 | isolated_build = true 3 | envlist = 4 | py3 5 | lint 6 | 7 | [testenv] 8 | commands = 9 | pytest -n6 {posargs} 10 | setenv = 11 | # Avoid stack overflow when Rust core is built without optimizations. 12 | RUST_MIN_STACK=8388608 13 | passenv = 14 | CHATMAIL_DOMAIN 15 | dependency_groups = 16 | dev 17 | 18 | [testenv:lint] 19 | skipsdist = True 20 | skip_install = True 21 | deps = 22 | ruff 23 | commands = 24 | ruff format --diff src/ examples/ tests/ 25 | ruff check src/ examples/ tests/ 26 | 27 | [pytest] 28 | timeout = 300 29 | log_cli = true 30 | log_level = debug 31 | -------------------------------------------------------------------------------- /test-data/message/dkimchecks-2022-09-28/alice@icloud.com/alice@delta.blinzeln.de: -------------------------------------------------------------------------------- 1 | Authentication-Results: bimi.icloud.com; bimi=skipped reason="insufficient dmarc" 2 | Authentication-Results: dmarc.icloud.com; dmarc=none header.from=delta.blinzeln.de 3 | Authentication-Results: dkim-verifier.icloud.com; dkim=none 4 | Authentication-Results: spf.icloud.com; spf=none (spf.icloud.com: alice@delta.blinzeln.de does not designate permitted sender hosts) smtp.mailfrom=alice@delta.blinzeln.de 5 | From: 6 | To: 7 | Authentication-Results: secure-mailgate.com; auth=pass smtp.auth=91.203.111.88@webbox222.server-home.org 8 | -------------------------------------------------------------------------------- /test-data/message/dkimchecks-2022-09-28/alice@zohomail.eu/alice@yahoo.com: -------------------------------------------------------------------------------- 1 | Authentication-Results: mx.zohomail.eu; 2 | dkim=pass; 3 | spf=pass (zohomail.eu: domain of _spf.mail.yahoo.com designates 77.238.177.32 as permitted sender) smtp.mailfrom=alice@yahoo.com; 4 | dmarc=pass(p=reject dis=none) header.from=yahoo.com 5 | ARC-Authentication-Results: i=1; mx.zohomail.eu; 6 | dkim=pass; 7 | spf=pass (zohomail.eu: domain of _spf.mail.yahoo.com designates 77.238.177.32 as permitted sender) smtp.mailfrom=alice@yahoo.com; 8 | dmarc=pass header.from= (p=reject dis=none) 9 | From: 10 | To: 11 | -------------------------------------------------------------------------------- /test-data/message/dkimchecks-2022-09-28/alice@zohomail.eu/alice@disroot.org: -------------------------------------------------------------------------------- 1 | Authentication-Results: mx.zohomail.eu; 2 | dkim=pass; 3 | spf=pass (zohomail.eu: domain of disroot.org designates 178.21.23.139 as permitted sender) smtp.mailfrom=alice@disroot.org; 4 | dmarc=pass(p=quarantine dis=none) header.from=disroot.org 5 | ARC-Authentication-Results: i=1; mx.zohomail.eu; 6 | dkim=pass; 7 | spf=pass (zohomail.eu: domain of disroot.org designates 178.21.23.139 as permitted sender) smtp.mailfrom=alice@disroot.org; 8 | dmarc=pass header.from= (p=quarantine dis=none) 9 | From: 10 | To: 11 | -------------------------------------------------------------------------------- /test-data/golden/chat_test_parallel_member_remove: -------------------------------------------------------------------------------- 1 | Group#Chat#2001: Group chat [3 member(s)] 2 | -------------------------------------------------------------------------------- 3 | Msg#2001: info (Contact#Contact#Info): Messages are end-to-end encrypted. [NOTICED][INFO] 4 | Msg#2002🔒: (Contact#Contact#2001): Hi! I created a group. [FRESH] 5 | Msg#2003🔒: Me (Contact#Contact#Self): You left the group. [INFO] √ 6 | Msg#2004🔒: (Contact#Contact#2001): Member charlie@example.net added by alice@example.org. [FRESH][INFO] 7 | Msg#2005🔒: (Contact#Contact#2001): What a silence! [FRESH] 8 | -------------------------------------------------------------------------------- 9 | -------------------------------------------------------------------------------- /test-data/message/dkimchecks-2022-09-28/alice@icloud.com/alice@mail.ru: -------------------------------------------------------------------------------- 1 | Authentication-Results: bimi.icloud.com; bimi=none 2 | Authentication-Results: dmarc.icloud.com; dmarc=pass header.from=mail.ru 3 | Authentication-Results: dkim-verifier.icloud.com; 4 | dkim=pass (2048-bit key) header.d=mail.ru header.i=@mail.ru header.b=e36cIHLU 5 | Authentication-Results: spf.icloud.com; spf=pass (spf.icloud.com: domain of alice@mail.ru designates 94.100.181.251 as permitted sender) smtp.mailfrom=alice@mail.ru 6 | From: 7 | To: 8 | Authentication-Results: smtpng1.m.smailru.net; auth=pass smtp.auth=alice@mail.ru smtp.mailfrom=alice@mail.ru 9 | -------------------------------------------------------------------------------- /test-data/message/dkimchecks-2022-09-28/alice@icloud.com/forged-authres-added@example.com: -------------------------------------------------------------------------------- 1 | Authentication-Results: bimi.icloud.com; bimi=skipped reason="insufficient dmarc" 2 | Authentication-Results: dmarc.icloud.com; dmarc=none header.from=delta.blinzeln.de 3 | Authentication-Results: dkim-verifier.icloud.com; dkim=none 4 | Authentication-Results: spf.icloud.com; spf=none (spf.icloud.com: alice@delta.blinzeln.de does not designate permitted sender hosts) smtp.mailfrom=alice@delta.blinzeln.de 5 | From: forged-authres-added@example.com 6 | Authentication-Results: aaa.com; dkim=pass header.i=@example.com 7 | Authentication-Results: aaa.com; dkim=pass header.i=@example.com 8 | -------------------------------------------------------------------------------- /test-data/message/dkimchecks-2022-09-28/alice@testrun.org/alice@gmx.de: -------------------------------------------------------------------------------- 1 | ARC-Authentication-Results: i=1; 2 | testrun.org; 3 | dkim=pass header.d=gmx.net header.s=badeba3b8450 header.b=Gug6p4zD; 4 | dmarc=pass (policy=none) header.from=gmx.de; 5 | spf=pass (testrun.org: domain of alice@gmx.de designates 212.227.17.21 as permitted sender) smtp.mailfrom=alice@gmx.de 6 | Authentication-Results: testrun.org; 7 | dkim=pass header.d=gmx.net header.s=badeba3b8450 header.b=Gug6p4zD; 8 | dmarc=pass (policy=none) header.from=gmx.de; 9 | spf=pass (testrun.org: domain of alice@gmx.de designates 212.227.17.21 as permitted sender) smtp.mailfrom=alice@gmx.de 10 | From: alice@gmx.de -------------------------------------------------------------------------------- /deltachat-jsonrpc/src/api/types/mod.rs: -------------------------------------------------------------------------------- 1 | pub mod account; 2 | pub mod calls; 3 | pub mod chat; 4 | pub mod chat_list; 5 | pub mod contact; 6 | pub mod events; 7 | pub mod http; 8 | pub mod location; 9 | pub mod login_param; 10 | pub mod message; 11 | pub mod notify_state; 12 | pub mod provider_info; 13 | pub mod qr; 14 | pub mod reactions; 15 | pub mod webxdc; 16 | 17 | pub fn color_int_to_hex_string(color: u32) -> String { 18 | format!("{color:#08x}").replace("0x", "#") 19 | } 20 | 21 | fn maybe_empty_string_to_option(string: String) -> Option { 22 | if string.is_empty() { 23 | None 24 | } else { 25 | Some(string) 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /test-data/message/attach_filename_apostrophed_cp1252.eml: -------------------------------------------------------------------------------- 1 | Subject: Test apostrophed filenames 2 | Message-ID: 12345@testrun.org 3 | Date: Sat, 07 Dec 2019 19:00:27 +0000 4 | X-Mailer: Kopano 8.7.16 5 | To: recp@testrun.org 6 | From: sender@testrun.org 7 | Content-Type: multipart/mixed; boundary="==BREAK==" 8 | 9 | 10 | --==BREAK== 11 | Content-Type: text/plain; charset=utf-8 12 | 13 | testing cp1252 aka ANSI aka Windows-1252 14 | 15 | --==BREAK== 16 | Content-Type: text/html 17 | Content-Disposition: attachment; 18 | filename*=Cp1252''Auftragsbest%E4tigung.pdf; 19 | Content-Transfer-Encoding: base64 20 | 21 | PGh0bWw+PGJvZHk+dGV4dDwvYm9keT5kYXRh 22 | 23 | --==BREAK==-- 24 | -------------------------------------------------------------------------------- /test-data/message/dkimchecks-2022-09-28/alice@icloud.com/alice@yandex.ru: -------------------------------------------------------------------------------- 1 | Authentication-Results: bimi.icloud.com; bimi=skipped reason="insufficient dmarc" 2 | Authentication-Results: dmarc.icloud.com; dmarc=pass header.from=yandex.ru 3 | Authentication-Results: dkim-verifier.icloud.com; 4 | dkim=pass (1024-bit key) header.d=yandex.ru header.i=@yandex.ru header.b=k2jxFMfG 5 | Authentication-Results: spf.icloud.com; spf=pass (spf.icloud.com: domain of alice@yandex.ru designates 5.45.198.239 as permitted sender) smtp.mailfrom=alice@yandex.ru 6 | Authentication-Results: iva4-143b1447cf50.qloud-c.yandex.net; dkim=pass header.i=@yandex.ru 7 | From: 8 | To: 9 | -------------------------------------------------------------------------------- /test-data/message/mail_with_user_avatar_deleted.eml: -------------------------------------------------------------------------------- 1 | Subject: =?utf-8?q?Chat=3A_profile_image_deleted?= 2 | Message-ID: Mr.tsgoJgn-cBf.0TkFWKJzeSp@example.org 3 | Date: Sun, 08 Dec 2019 23:28:30 +0000 4 | X-Mailer: Delta Chat Core 1.0.0-beta.12/CLI 5 | Chat-Version: 1.0 6 | To: 7 | From: "=?utf-8?q??=" 8 | Content-Type: multipart/mixed; boundary="luTiGu6GBoVLCvTkzVtmZmwsmhkNMw" 9 | 10 | 11 | --luTiGu6GBoVLCvTkzVtmZmwsmhkNMw 12 | Content-Type: text/plain; charset=utf-8 13 | Chat-User-Avatar: 0 14 | 15 | profile image deleted 16 | 17 | -- 18 | Sent with my Delta Chat Messenger: https://delta.chat 19 | 20 | --luTiGu6GBoVLCvTkzVtmZmwsmhkNMw-- 21 | -------------------------------------------------------------------------------- /deltachat-rpc-client/examples/echobot.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python3 2 | """Minimal echo bot example. 3 | 4 | it will echo back any text send to it, it also will print to console all Delta Chat core events. 5 | Pass --help to the CLI to see available options. 6 | """ 7 | 8 | from deltachat_rpc_client import events, run_bot_cli 9 | 10 | hooks = events.HookCollection() 11 | 12 | 13 | @hooks.on(events.RawEvent) 14 | def log_event(event): 15 | print(event) 16 | 17 | 18 | @hooks.on(events.NewMessage) 19 | def echo(event): 20 | snapshot = event.message_snapshot 21 | snapshot.chat.send_text(snapshot.text) 22 | 23 | 24 | if __name__ == "__main__": 25 | run_bot_cli(hooks) 26 | -------------------------------------------------------------------------------- /fuzz/Cargo.toml: -------------------------------------------------------------------------------- 1 | [package] 2 | name = "deltachat-fuzz" 3 | version = "0.0.0" 4 | publish = false 5 | edition = "2021" 6 | license = "MPL-2.0" 7 | 8 | [dev-dependencies] 9 | bolero = "0.13.4" 10 | 11 | [dependencies] 12 | mailparse = { workspace = true } 13 | deltachat = { path = ".." } 14 | format-flowed = { path = "../format-flowed" } 15 | 16 | [[test]] 17 | name = "fuzz_dateparse" 18 | path = "fuzz_targets/fuzz_dateparse.rs" 19 | harness = false 20 | 21 | [[test]] 22 | name = "fuzz_mailparse" 23 | path = "fuzz_targets/fuzz_mailparse.rs" 24 | harness = false 25 | 26 | [[test]] 27 | name = "fuzz_format_flowed" 28 | path = "fuzz_targets/fuzz_format_flowed.rs" 29 | harness = false 30 | -------------------------------------------------------------------------------- /test-data/message/dkimchecks-2022-09-28/alice@gmail.com/alice@delta.blinzeln.de: -------------------------------------------------------------------------------- 1 | ARC-Authentication-Results: i=1; mx.google.com; 2 | spf=neutral (google.com: 89.22.108.212 is neither permitted nor denied by best guess record for domain of alice@delta.blinzeln.de) smtp.mailfrom=alice@delta.blinzeln.de 3 | Authentication-Results: mx.google.com; 4 | spf=neutral (google.com: 89.22.108.212 is neither permitted nor denied by best guess record for domain of alice@delta.blinzeln.de) smtp.mailfrom=alice@delta.blinzeln.de 5 | From: 6 | To: 7 | Authentication-Results: secure-mailgate.com; auth=pass smtp.auth=91.203.111.88@webbox222.server-home.org 8 | -------------------------------------------------------------------------------- /.cargo/config.toml: -------------------------------------------------------------------------------- 1 | [env] 2 | # In unoptimised builds tokio tends to use a lot of stack space when 3 | # creating some complicated futures, tokio has an open issue for this: 4 | # https://github.com/tokio-rs/tokio/issues/2055. Some of our tests 5 | # manage to not fit in the default 2MiB stack anymore due to this, so 6 | # while the issue is not resolved we want to work around this. 7 | # Because compiling optimised builds takes a very long time we prefer 8 | # to avoid that. Setting this environment variable ensures that when 9 | # invoking `cargo test` threads are allowed to have a large enough 10 | # stack size without needing to use an optimised build. 11 | RUST_MIN_STACK = "8388608" 12 | -------------------------------------------------------------------------------- /scripts/remote_tests_rust.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | set -euo pipefail 3 | 4 | if ! test -v SSHTARGET; then 5 | echo >&2 SSHTARGET is not set 6 | exit 1 7 | fi 8 | BUILDDIR=ci_builds/chatmailcore 9 | 10 | echo "--- Copying files to $SSHTARGET:$BUILDDIR" 11 | 12 | rsync -az --delete --mkpath --files-from=<(git ls-files) ./ "$SSHTARGET:$BUILDDIR" 13 | 14 | echo "--- Running Rust tests remotely" 15 | 16 | ssh -oBatchMode=yes -- "$SSHTARGET" <<_HERE 17 | set +x -e 18 | # make sure all processes exit when ssh dies 19 | shopt -s huponexit 20 | export RUSTC_WRAPPER=\`command -v sccache\` 21 | cd $BUILDDIR 22 | 23 | cargo nextest run 24 | _HERE 25 | 26 | -------------------------------------------------------------------------------- /scripts/run-python-test.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # 3 | # Run functional tests for Delta Chat core using the python bindings 4 | # and tox/pytest. 5 | 6 | set -e -x 7 | shopt -s huponexit 8 | 9 | # for core-building and python install step 10 | export DCC_RS_TARGET=debug 11 | export DCC_RS_DEV=`pwd` 12 | 13 | cd python 14 | 15 | cargo build -p deltachat_ffi 16 | 17 | # remove and inhibit writing PYC files 18 | rm -rf tests/__pycache__ 19 | rm -rf src/deltachat/__pycache__ 20 | export PYTHONDONTWRITEBYTECODE=1 21 | 22 | # run python tests (tox invokes pytest to run tests in python/tests) 23 | #TOX_PARALLEL_NO_SPINNER=1 tox -e lint,doc 24 | tox -e lint 25 | tox -e doc 26 | tox -e py -- "$@" 27 | -------------------------------------------------------------------------------- /test-data/message/attach_filename_apostrophed.eml: -------------------------------------------------------------------------------- 1 | Subject: Test apostrophed filenames 2 | Message-ID: 12345@testrun.org 3 | Date: Sat, 07 Dec 2019 19:00:27 +0000 4 | X-Mailer: Kopano 8.7.16 5 | To: recp@testrun.org 6 | From: sender@testrun.org 7 | Content-Type: multipart/mixed; boundary="==BREAK==" 8 | 9 | 10 | --==BREAK== 11 | Content-Type: text/plain; charset=utf-8 12 | 13 | apostrophed filenames as of 14 | https://tools.ietf.org/html/rfc2231 15 | 16 | --==BREAK== 17 | Content-Type: text/html 18 | Content-Disposition: attachment; 19 | filename*=utf-8''Ma%C3%9Fnahmen%20Okt.%202021.html 20 | Content-Transfer-Encoding: base64 21 | 22 | PGh0bWw+PGJvZHk+dGV4dDwvYm9keT5kYXRh 23 | 24 | --==BREAK==-- 25 | -------------------------------------------------------------------------------- /test-data/message/ctext_unsigned.asc: -------------------------------------------------------------------------------- 1 | -----BEGIN PGP MESSAGE----- 2 | 3 | wU4DAAAAAAAAAAASAQdA4GtzIk21tMpcktf+k47Gn8iSt8JMJgu/hEf7wJLUGgsg 4 | /dQ8eBSe4/PoEoNQ2mHnHWSdPH4zvS142R86iiyGe3jBwEwDAAAAAAAAAAABB/9l 5 | dteYjCvGpJxjgm8dGcb3lY9jVj76HLu72KWLZy2p/Ch/mxGW2GtgWNipFA2plCLQ 6 | Dzutak20lbYXkBL+zEnioHc5aAixruQQa2yZSRqePxPmkC/eTiedNeVJCOcrJBbj 7 | k8kQ+CPXLxx6mWS28s0tQkbpH9oJ2Esy0J6FNl0DMTWG50FWuo+Mh/gQ7Su3S1Il 8 | MYa7n58LhMjNGwD0ckp+Ig1XPNnnyauA+0kU/yDy7aA9NH4CtdqeobitEnn2aK4c 9 | sge0008GzZ/p1UWAyIVCqXuB1cNQY0UMVLohV3v343Xf9vS6ZQ8Bi8L+DiS+WpSt 10 | 2fYGJ7Iqq6joatv6wPgS0j8BTbOcCygy/V1NvwzZpXnOawiGYJaCFU33vr2p1SrK 11 | YB5YCwFI4499aXUGhokyAW0xy6+N7o2Ps1qS4L3cqu0= 12 | =Ytf8 13 | -----END PGP MESSAGE----- 14 | -------------------------------------------------------------------------------- /test-data/message/gmx-quote-body.eml: -------------------------------------------------------------------------------- 1 |
Test
2 | 3 |
  4 |
  5 |
6 |
Gesendet: Freitag, 04. Dezember 2020 um 18:46 Uhr
7 | Von: "Bob" <bob@gmx.de>
8 | An: alice@gmx.de
9 | Betreff: test
10 | 11 |
test
12 |
13 |
14 |
15 | -------------------------------------------------------------------------------- /test-data/message/dkimchecks-2022-09-28/alice@icloud.com/alice@outlook.com: -------------------------------------------------------------------------------- 1 | Authentication-Results: bimi.icloud.com; bimi=skipped reason="insufficient dmarc" 2 | Authentication-Results: dmarc.icloud.com; dmarc=pass header.from=outlook.com 3 | Authentication-Results: dkim-verifier.icloud.com; 4 | dkim=pass (2048-bit key) header.d=outlook.com header.i=@outlook.com header.b=aRO3cX1y 5 | Authentication-Results: spf.icloud.com; spf=pass (spf.icloud.com: domain of alice@outlook.com designates 40.92.66.68 as permitted sender) smtp.mailfrom=alice@outlook.com 6 | ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=none; dmarc=none; 7 | dkim=none; arc=none 8 | From: 9 | To: 10 | -------------------------------------------------------------------------------- /assets/statistics-bot.vcf: -------------------------------------------------------------------------------- 1 | BEGIN:VCARD 2 | VERSION:4.0 3 | EMAIL:self_reporting@testrun.org 4 | FN:Statistics bot 5 | KEY:data:application/pgp-keys;base64,xjMEZbfBlBYJKwYBBAHaRw8BAQdABpLWS2PUIGGo4pslVt4R8sylP5wZihmhf1DTDr3oCMPNHDxzZWxmX3JlcG9ydGluZ0B0ZXN0cnVuLm9yZz7CiwQQFggAMwIZAQUCZbfBlAIbAwQLCQgHBhUICQoLAgMWAgEWIQTS2i16sHeYTckGn284K3M5Z4oohAAKCRA4K3M5Z4oohD8dAQCQV7CoH6UP4PD+NqI4kW5tbbqdh2AnDROg60qotmLExAEAxDfd3QHAK9f8b9qQUbLmHIztCLxhEuVbWPBEYeVW0gvOOARlt8GUEgorBgEEAZdVAQUBAQdAMBUhYoAAcI625vGZqnM5maPX4sGJ7qvJxPAFILPy6AcDAQgHwngEGBYIACAFAmW3wZQCGwwWIQTS2i16sHeYTckGn284K3M5Z4oohAAKCRA4K3M5Z4oohPwCAQCvzk1ObIkj2GqsuIfaULlgdnfdZY8LNary425CEfHZDQD5AblXVrlMO1frdlc/Vo9z3pEeCrfYdD7ITD3/OeVoiQ4= 6 | REV:20250412T195751Z 7 | END:VCARD 8 | -------------------------------------------------------------------------------- /deltachat-repl/Cargo.toml: -------------------------------------------------------------------------------- 1 | [package] 2 | name = "deltachat-repl" 3 | version = "2.34.0" 4 | license = "MPL-2.0" 5 | edition = "2021" 6 | repository = "https://github.com/chatmail/core" 7 | 8 | [dependencies] 9 | anyhow = { workspace = true } 10 | deltachat = { workspace = true, features = ["internals"]} 11 | dirs = "6" 12 | log = { workspace = true } 13 | nu-ansi-term = { workspace = true } 14 | qr2term = "0.3.3" 15 | rusqlite = { workspace = true } 16 | rustyline = "16" 17 | tokio = { workspace = true, features = ["fs", "rt-multi-thread", "macros"] } 18 | tracing-subscriber = { workspace = true, features = ["env-filter"] } 19 | 20 | [features] 21 | default = ["vendored"] 22 | vendored = ["deltachat/vendored"] 23 | -------------------------------------------------------------------------------- /test-data/golden/two_group_securejoins: -------------------------------------------------------------------------------- 1 | Group#Chat#6002: Group [3 member(s)] 2 | -------------------------------------------------------------------------------- 3 | Msg#6003: info (Contact#Contact#Info): Messages are end-to-end encrypted. [NOTICED][INFO] 4 | Msg#6004: info (Contact#Contact#Info): alice@example.org invited you to join this group. 5 | 6 | Waiting for the device of alice@example.org to reply… [NOTICED][INFO] 7 | Msg#6006: info (Contact#Contact#Info): alice@example.org replied, waiting for being added to the group… [NOTICED][INFO] 8 | Msg#6008🔒: (Contact#Contact#6001): Member Me added by alice@example.org. [FRESH][INFO] 9 | -------------------------------------------------------------------------------- 10 | -------------------------------------------------------------------------------- /test-data/golden/test_old_message_3: -------------------------------------------------------------------------------- 1 | Single#Chat#10: Bob [PGP bob@example.net] 🛡️ 2 | -------------------------------------------------------------------------------- 3 | Msg#10: info (Contact#Contact#Info): Messages are guaranteed to be end-to-end encrypted from now on. [NOTICED][INFO 🛡️] 4 | Msg#11🔒: (Contact#Contact#10): Heyho from my verified device! [FRESH] 5 | Msg#12: info (Contact#Contact#Info): Bob sent a message from another device. [NOTICED][INFO 🛡️❌] 6 | Msg#13: (Contact#Contact#10): Old, unverified message [SEEN] 7 | Msg#14: info (Contact#Contact#Info): Messages are guaranteed to be end-to-end encrypted from now on. [NOTICED][INFO 🛡️] 8 | -------------------------------------------------------------------------------- 9 | -------------------------------------------------------------------------------- /test-data/message/dkimchecks-2022-09-28/alice@zohomail.eu/alice@yandex.ru: -------------------------------------------------------------------------------- 1 | Authentication-Results: mx.zohomail.eu; 2 | dkim=pass; 3 | spf=pass (zohomail.eu: domain of _spf.yandex.ru designates 37.140.190.195 as permitted sender) smtp.mailfrom=alice@yandex.ru; 4 | dmarc=pass(p=none dis=none) header.from=yandex.ru 5 | ARC-Authentication-Results: i=1; mx.zohomail.eu; 6 | dkim=pass; 7 | spf=pass (zohomail.eu: domain of _spf.yandex.ru designates 37.140.190.195 as permitted sender) smtp.mailfrom=alice@yandex.ru; 8 | dmarc=pass header.from= (p=none dis=none) 9 | Authentication-Results: vla1-b7b6154c4cfd.qloud-c.yandex.net; dkim=pass header.i=@yandex.ru 10 | From: 11 | To: 12 | -------------------------------------------------------------------------------- /test-data/message/dkimchecks-2022-09-28/alice@zohomail.eu/alice@mail.ru: -------------------------------------------------------------------------------- 1 | Authentication-Results: mx.zohomail.eu; 2 | dkim=pass; 3 | spf=pass (zohomail.eu: domain of _spf.mail.ru designates 94.100.181.251 as permitted sender) smtp.mailfrom=alice@mail.ru; 4 | dmarc=pass(p=reject dis=none) header.from=mail.ru 5 | ARC-Authentication-Results: i=1; mx.zohomail.eu; 6 | dkim=pass; 7 | spf=pass (zohomail.eu: domain of _spf.mail.ru designates 94.100.181.251 as permitted sender) smtp.mailfrom=alice@mail.ru; 8 | dmarc=pass header.from= (p=reject dis=none) 9 | From: 10 | To: 11 | Authentication-Results: smtpng1.m.smailru.net; auth=pass smtp.auth=alice@mail.ru smtp.mailfrom=alice@mail.ru 12 | -------------------------------------------------------------------------------- /deltachat-rpc-client/src/deltachat_rpc_client/__init__.py: -------------------------------------------------------------------------------- 1 | """Delta Chat JSON-RPC high-level API.""" 2 | 3 | from ._utils import AttrDict, run_bot_cli, run_client_cli 4 | from .account import Account 5 | from .chat import Chat 6 | from .client import Bot, Client 7 | from .const import EventType, SpecialContactId 8 | from .contact import Contact 9 | from .deltachat import DeltaChat 10 | from .message import Message 11 | from .rpc import Rpc 12 | 13 | __all__ = [ 14 | "Account", 15 | "AttrDict", 16 | "Bot", 17 | "Chat", 18 | "Client", 19 | "Contact", 20 | "DeltaChat", 21 | "EventType", 22 | "Message", 23 | "SpecialContactId", 24 | "Rpc", 25 | "run_bot_cli", 26 | "run_client_cli", 27 | ] 28 | -------------------------------------------------------------------------------- /test-data/golden/test_sync_broadcast_bob: -------------------------------------------------------------------------------- 1 | InBroadcast#Chat#2002: Channel [1 member(s)] 2 | -------------------------------------------------------------------------------- 3 | Msg#2003: info (Contact#Contact#Info): Messages are end-to-end encrypted. [NOTICED][INFO] 4 | Msg#2004: info (Contact#Contact#Info): alice@example.org invited you to join this channel. 5 | 6 | Waiting for the device of alice@example.org to reply… [NOTICED][INFO] 7 | Msg#2008🔒: (Contact#Contact#2001): You joined the channel. [FRESH][INFO] 8 | Msg#2010🔒: (Contact#Contact#2001): hi [FRESH] 9 | Msg#2011🔒: (Contact#Contact#2001): Member Me removed by alice@example.org. [FRESH][INFO] 10 | -------------------------------------------------------------------------------- 11 | -------------------------------------------------------------------------------- /scripts/run-integration-tests.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # Small helper to easily run integration tests locally for development 4 | # purposes. Any arguments are passed straight to tox. E.g. to run 5 | # only one environment run with: 6 | # 7 | # scripts/run-integration-tests.sh -e py35 8 | # 9 | # To also run with `pytest -x` use: 10 | # 11 | # scripts/run-integration-tests.sh -e py35 -- -x 12 | 13 | export DCC_RS_DEV=$(pwd) 14 | export DCC_RS_TARGET=${DCC_RS_TARGET:-release} 15 | 16 | if [ $DCC_RS_TARGET = 'release' ]; then 17 | cargo build -p deltachat_ffi --release 18 | else 19 | cargo build -p deltachat_ffi 20 | fi 21 | if [ $? != 0 ]; then 22 | exit $? 23 | fi 24 | 25 | pushd python 26 | tox "$@" 27 | ret=$? 28 | popd 29 | exit $ret 30 | -------------------------------------------------------------------------------- /test-data/message/dkimchecks-2022-09-28/alice@gmail.com/alice@aol.com: -------------------------------------------------------------------------------- 1 | ARC-Authentication-Results: i=1; mx.google.com; 2 | dkim=pass header.i=@aol.com header.s=a2048 header.b=aox1b6+y; 3 | spf=pass (google.com: domain of alice@aol.com designates 87.248.110.84 as permitted sender) smtp.mailfrom=alice@aol.com; 4 | dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=aol.com 5 | Authentication-Results: mx.google.com; 6 | dkim=pass header.i=@aol.com header.s=a2048 header.b=aox1b6+y; 7 | spf=pass (google.com: domain of alice@aol.com designates 87.248.110.84 as permitted sender) smtp.mailfrom=alice@aol.com; 8 | dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=aol.com 9 | From: 10 | To: 11 | -------------------------------------------------------------------------------- /test-data/message/dkimchecks-2022-09-28/alice@gmail.com/alice@ik.me: -------------------------------------------------------------------------------- 1 | ARC-Authentication-Results: i=1; mx.google.com; 2 | dkim=pass header.i=@ik.me header.s=20200325 header.b=k4mDkE5i; 3 | spf=pass (google.com: domain of alice@ik.me designates 2001:1600:4:17::8fae as permitted sender) smtp.mailfrom=alice@ik.me; 4 | dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=ik.me 5 | Authentication-Results: mx.google.com; 6 | dkim=pass header.i=@ik.me header.s=20200325 header.b=k4mDkE5i; 7 | spf=pass (google.com: domain of alice@ik.me designates 2001:1600:4:17::8fae as permitted sender) smtp.mailfrom=alice@ik.me; 8 | dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=ik.me 9 | From: 10 | To: 11 | -------------------------------------------------------------------------------- /.github/workflows/dependabot.yml: -------------------------------------------------------------------------------- 1 | # GitHub Actions workflow 2 | # to automatically approve PRs made by Dependabot. 3 | 4 | name: Dependabot auto-approve 5 | on: pull_request 6 | 7 | permissions: 8 | pull-requests: write 9 | 10 | jobs: 11 | dependabot: 12 | runs-on: ubuntu-latest 13 | if: ${{ github.actor == 'dependabot[bot]' }} 14 | steps: 15 | - name: Dependabot metadata 16 | id: metadata 17 | uses: dependabot/fetch-metadata@v2.4.0 18 | with: 19 | github-token: "${{ secrets.GITHUB_TOKEN }}" 20 | - name: Approve a PR 21 | run: gh pr review --approve "$PR_URL" 22 | env: 23 | PR_URL: ${{github.event.pull_request.html_url}} 24 | GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}} 25 | -------------------------------------------------------------------------------- /.gitattributes: -------------------------------------------------------------------------------- 1 | # normal text files should contain a simple LF lineend, the following settings 2 | # ensures this even if the user has not set core.autocrlf. 3 | * text=auto 4 | 5 | # Checkout JavaScript files with LF line endings 6 | # to prevent `prettier` from reporting errors on Windows. 7 | *.js eol=lf 8 | *.jsx eol=lf 9 | *.ts eol=lf 10 | *.tsx eol=lf 11 | *.json eol=lf 12 | 13 | # This directory contains email messages verbatim, and changing CRLF to 14 | # LF will corrupt them. 15 | test-data/** text=false 16 | 17 | # binary files should be detected by git, however, to be sure, you can add them here explicitly 18 | *.png binary 19 | *.jpg binary 20 | *.gif binary 21 | *.ico binary 22 | 23 | *.py diff=python 24 | *.rs diff=rust 25 | *.md diff=markdown 26 | -------------------------------------------------------------------------------- /scripts/update-provider-database.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | # Updates provider database. 3 | # Returns 1 if the database is changed, 0 otherwise. 4 | set -euo pipefail 5 | 6 | export TZ=UTC 7 | 8 | # Provider database revision. 9 | REV=d041136c19a48b493823b46d472f12b9ee94ae80 10 | 11 | CORE_ROOT="$PWD" 12 | TMP="$(mktemp -d)" 13 | git clone --filter=blob:none https://github.com/deltachat/provider-db.git "$TMP" 14 | cd "$TMP" 15 | git checkout "$REV" 16 | DATE=$(git show -s --format=%cs) 17 | "$CORE_ROOT"/scripts/create-provider-data-rs.py "$TMP/_providers" "$DATE" >"$CORE_ROOT/src/provider/data.rs" 18 | rustfmt --edition 2024 "$CORE_ROOT/src/provider/data.rs" 19 | rm -fr "$TMP" 20 | 21 | cd "$CORE_ROOT" 22 | test -z "$(git status --porcelain src/provider/data.rs)" 23 | -------------------------------------------------------------------------------- /test-data/message/dkimchecks-2022-09-28/alice@gmail.com/alice@buzon.uy: -------------------------------------------------------------------------------- 1 | ARC-Authentication-Results: i=1; mx.google.com; 2 | dkim=pass header.i=@buzon.uy header.s=2019 header.b=GjVe3q13; 3 | spf=pass (google.com: domain of alice@buzon.uy designates 185.101.93.79 as permitted sender) smtp.mailfrom=alice@buzon.uy; 4 | dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=buzon.uy 5 | Authentication-Results: mx.google.com; 6 | dkim=pass header.i=@buzon.uy header.s=2019 header.b=GjVe3q13; 7 | spf=pass (google.com: domain of alice@buzon.uy designates 185.101.93.79 as permitted sender) smtp.mailfrom=alice@buzon.uy; 8 | dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=buzon.uy 9 | From: 10 | To: 11 | -------------------------------------------------------------------------------- /test-data/message/dkimchecks-2022-09-28/alice@gmail.com/alice@posteo.de: -------------------------------------------------------------------------------- 1 | ARC-Authentication-Results: i=1; mx.google.com; 2 | dkim=pass header.i=@posteo.de header.s=2017 header.b=PJxg1eJM; 3 | spf=pass (google.com: domain of alice@posteo.de designates 185.67.36.65 as permitted sender) smtp.mailfrom=alice@posteo.de; 4 | dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=posteo.de 5 | Authentication-Results: mx.google.com; 6 | dkim=pass header.i=@posteo.de header.s=2017 header.b=PJxg1eJM; 7 | spf=pass (google.com: domain of alice@posteo.de designates 185.67.36.65 as permitted sender) smtp.mailfrom=alice@posteo.de; 8 | dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=posteo.de 9 | From: 10 | To: 11 | -------------------------------------------------------------------------------- /test-data/message/dkimchecks-2022-09-28/alice@gmail.com/alice@mailo.com: -------------------------------------------------------------------------------- 1 | ARC-Authentication-Results: i=1; mx.google.com; 2 | dkim=pass header.i=@mailo.com header.s=mailo header.b="PoGUlxd/"; 3 | spf=pass (google.com: domain of alice@mailo.com designates 213.182.54.11 as permitted sender) smtp.mailfrom=alice@mailo.com; 4 | dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=mailo.com 5 | Authentication-Results: mx.google.com; 6 | dkim=pass header.i=@mailo.com header.s=mailo header.b="PoGUlxd/"; 7 | spf=pass (google.com: domain of alice@mailo.com designates 213.182.54.11 as permitted sender) smtp.mailfrom=alice@mailo.com; 8 | dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=mailo.com 9 | From: 10 | To: 11 | -------------------------------------------------------------------------------- /test-data/message/dkimchecks-2022-09-28/alice@icloud.com/alice@fastmail.com: -------------------------------------------------------------------------------- 1 | Authentication-Results: bimi.icloud.com; bimi=skipped reason="insufficient dmarc" 2 | Authentication-Results: dmarc.icloud.com; dmarc=pass header.from=fastmail.com 3 | Authentication-Results: dkim-verifier.icloud.com; 4 | dkim=pass (2048-bit key) header.d=fastmail.com header.i=@fastmail.com header.b=XEFkSwVW 5 | Authentication-Results: dkim-verifier.icloud.com; 6 | dkim=pass (2048-bit key) header.d=messagingengine.com header.i=@messagingengine.com header.b=tIugs7hL 7 | Authentication-Results: spf.icloud.com; spf=pass (spf.icloud.com: domain of alice@fastmail.com designates 66.111.4.28 as permitted sender) smtp.mailfrom=alice@fastmail.com 8 | From: 9 | To: 10 | -------------------------------------------------------------------------------- /scripts/coredeps/install-rust.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | set -euo pipefail 3 | 4 | # Install Rust 5 | # 6 | # Path from https://forge.rust-lang.org/infra/other-installation-methods.html 7 | # 8 | # Avoid using rustup here as it depends on reading /proc/self/exe and 9 | # has problems running under QEMU. 10 | RUST_VERSION=1.92.0 11 | 12 | ARCH="$(uname -m)" 13 | test -f "/lib/libc.musl-$ARCH.so.1" && LIBC=musl || LIBC=gnu 14 | 15 | curl "https://static.rust-lang.org/dist/rust-${RUST_VERSION}-$ARCH-unknown-linux-$LIBC.tar.gz" | tar xz 16 | cd "rust-${RUST_VERSION}-$ARCH-unknown-linux-$LIBC" 17 | ./install.sh --prefix=/usr --components=rustc,cargo,"rust-std-$ARCH-unknown-linux-$LIBC" 18 | rustc --version 19 | cd .. 20 | rm -fr "rust-${RUST_VERSION}-$ARCH-unknown-linux-$LIBC" 21 | -------------------------------------------------------------------------------- /test-data/message/attach_filename_encoded_words.eml: -------------------------------------------------------------------------------- 1 | Subject: Test encoded-words filenames 2 | Message-ID: 123456@testrun.org 3 | Date: Sat, 07 Dec 2019 19:00:27 +0000 4 | Chat-Version: 1.0 5 | To: recp@testrun.org 6 | From: sender@testrun.org 7 | Content-Type: multipart/mixed; boundary="mwkNRwabw1M5n2xcr2ODfAqvTjcj9Z" 8 | 9 | 10 | --mwkNRwabw1M5n2xcr2ODfAqvTjcj9Z 11 | Content-Type: text/plain; charset=utf-8 12 | 13 | -- 14 | Sent with my Delta Chat Messenger: https://delta.chat 15 | 16 | --mwkNRwabw1M5n2xcr2ODfAqvTjcj9Z 17 | Content-Type: text/html 18 | Content-Disposition: attachment; filename="=?utf-8?Q?Ma=C3=9Fnahmen_Okt=2E_2020=2Ehtml?="; 19 | Content-Transfer-Encoding: base64 20 | 21 | PGh0bWw+PGJvZHk+dGV4dDwvYm9keT5kYXRh 22 | 23 | --mwkNRwabw1M5n2xcr2ODfAqvTjcj9Z-- 24 | -------------------------------------------------------------------------------- /test-data/message/dkimchecks-2022-09-28/alice@gmail.com/alice@mail.de: -------------------------------------------------------------------------------- 1 | ARC-Authentication-Results: i=1; mx.google.com; 2 | dkim=pass header.i=@mail.de header.s=mailde202009 header.b=PVEru5f0; 3 | spf=pass (google.com: domain of alice@mail.de designates 2001:868:100:600::216 as permitted sender) smtp.mailfrom=alice@mail.de; 4 | dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=mail.de 5 | Authentication-Results: mx.google.com; 6 | dkim=pass header.i=@mail.de header.s=mailde202009 header.b=PVEru5f0; 7 | spf=pass (google.com: domain of alice@mail.de designates 2001:868:100:600::216 as permitted sender) smtp.mailfrom=alice@mail.de; 8 | dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=mail.de 9 | From: 10 | To: 11 | -------------------------------------------------------------------------------- /test-data/message/dkimchecks-2022-09-28/alice@gmail.com/alice@yahoo.com: -------------------------------------------------------------------------------- 1 | ARC-Authentication-Results: i=1; mx.google.com; 2 | dkim=pass header.i=@yahoo.com header.s=s2048 header.b=KF9PvN1o; 3 | spf=pass (google.com: domain of alice@yahoo.com designates 87.248.110.84 as permitted sender) smtp.mailfrom=alice@yahoo.com; 4 | dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=yahoo.com 5 | Authentication-Results: mx.google.com; 6 | dkim=pass header.i=@yahoo.com header.s=s2048 header.b=KF9PvN1o; 7 | spf=pass (google.com: domain of alice@yahoo.com designates 87.248.110.84 as permitted sender) smtp.mailfrom=alice@yahoo.com; 8 | dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=yahoo.com 9 | From: 10 | To: 11 | -------------------------------------------------------------------------------- /test-data/message/dkimchecks-2022-09-28/alice@gmail.com/alice@riseup.net: -------------------------------------------------------------------------------- 1 | ARC-Authentication-Results: i=1; mx.google.com; 2 | dkim=pass header.i=@riseup.net header.s=squak header.b="W/pP/71g"; 3 | spf=pass (google.com: domain of alice@riseup.net designates 198.252.153.6 as permitted sender) smtp.mailfrom=alice@riseup.net; 4 | dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=riseup.net 5 | Authentication-Results: mx.google.com; 6 | dkim=pass header.i=@riseup.net header.s=squak header.b="W/pP/71g"; 7 | spf=pass (google.com: domain of alice@riseup.net designates 198.252.153.6 as permitted sender) smtp.mailfrom=alice@riseup.net; 8 | dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=riseup.net 9 | From: 10 | To: 11 | -------------------------------------------------------------------------------- /test-data/message/dkimchecks-2022-09-28/alice@outlook.com/alice@hotmail.com: -------------------------------------------------------------------------------- 1 | ARC-Authentication-Results: i=2; mx.microsoft.com 1; spf=pass (sender ip is 2 | 40.92.73.85) smtp.rcpttodomain=outlook.com smtp.mailfrom=hotmail.com; 3 | dmarc=pass (p=none sp=none pct=100) action=none header.from=hotmail.com; 4 | dkim=pass (signature was verified) header.d=hotmail.com; arc=pass (0 oda=0 5 | ltdi=1) 6 | Authentication-Results: spf=pass (sender IP is 40.92.73.85) 7 | smtp.mailfrom=hotmail.com; dkim=pass (signature was verified) 8 | header.d=hotmail.com;dmarc=pass action=none 9 | header.from=hotmail.com;compauth=pass reason=100 10 | ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=none; dmarc=none; 11 | dkim=none; arc=none 12 | From: 13 | To: 14 | -------------------------------------------------------------------------------- /test-data/message/dkimchecks-2022-09-28/alice@gmail.com/alice@icloud.com: -------------------------------------------------------------------------------- 1 | ARC-Authentication-Results: i=1; mx.google.com; 2 | dkim=pass header.i=@icloud.com header.s=1a1hai header.b=l1YS4V6g; 3 | spf=pass (google.com: domain of alice@icloud.com designates 17.57.155.16 as permitted sender) smtp.mailfrom=alice@icloud.com; 4 | dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=icloud.com 5 | Authentication-Results: mx.google.com; 6 | dkim=pass header.i=@icloud.com header.s=1a1hai header.b=l1YS4V6g; 7 | spf=pass (google.com: domain of alice@icloud.com designates 17.57.155.16 as permitted sender) smtp.mailfrom=alice@icloud.com; 8 | dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=icloud.com 9 | From: 10 | To: 11 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/bug_report.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Bug report 3 | about: Report something that isn't working. 4 | title: '' 5 | assignees: '' 6 | labels: bug 7 | --- 8 | 9 | 14 | 15 | - Operating System (Linux/Mac/Windows/iOS/Android): 16 | - Core Version: 17 | - Client Version: 18 | 19 | ## Expected behavior 20 | 21 | *What did you try to achieve?* 22 | 23 | ## Actual behavior 24 | 25 | *What happened instead?* 26 | 27 | ### Steps to reproduce the problem 28 | 29 | 1. 30 | 2. 31 | 32 | ### Screenshots 33 | 34 | ### Logs 35 | 36 | -------------------------------------------------------------------------------- /test-data/key/alice-secret.asc: -------------------------------------------------------------------------------- 1 | -----BEGIN PGP PRIVATE KEY BLOCK----- 2 | 3 | lFgEXlh13RYJKwYBBAHaRw8BAQdAzfVIAleCXMJrq8VeLlEVof6ITCviMktKjmcB 4 | KAu4m5AAAQDMpCY4sD5/DUR0jRjGC5WstwShz1q+5Vofo5mY9+XRXRA3tBlBbGlj 5 | ZSA8YWxpY2VAZXhhbXBsZS5vcmc+iJAEExYIADgWIQQub6LLI7Uy1yhjS1hksI9h 6 | qe2UQwUCXlh13QIbAwULCQgHAgYVCgkICwIEFgIDAQIeAQIXgAAKCRBksI9hqe2U 7 | QxN6AP4uDAsgzE7I1qg2aEMF/wPxqEztv1dMCj4YyScv/JtqTAD5AYzpxjrcdkma 8 | ULyRk2vYfNOEWOog60biPAP/LRBFwAOcXQReWHXdEgorBgEEAZdVAQUBAQdABu3I 9 | 1stkhQFPCp5bZbm1Vuu6xYsn6dNSa0Xul6stth0DAQgHAAD/X9y9I/JFBeArkgR3 10 | U363cWXXxMCWftS+BDwM9zE4PrgQb4h4BBgWCAAgFiEELm+iyyO1MtcoY0tYZLCP 11 | YantlEMFAl5Ydd0CGwwACgkQZLCPYantlEMujwEA5sTwaewZXArM2oK8d5aAmyqG 12 | NLcLqC9KVXe0Sb1eYXoBANe5wjJV+gHCjIyHaHpxKf8BOflAlvfmmCj6K+neOwwC 13 | =gNT4 14 | -----END PGP PRIVATE KEY BLOCK----- 15 | -------------------------------------------------------------------------------- /test-data/message/quote_attach.eml: -------------------------------------------------------------------------------- 1 | Subject: Message from Alice 2 | MIME-Version: 1.0 3 | In-Reply-To: 4 | Date: Sun, 08 Nov 2020 01:16:26 +0000 5 | Chat-Version: 1.0 6 | Message-ID: 7 | To: Bob 8 | From: Alice 9 | Content-Type: multipart/mixed; boundary="uWbWY2IyEtJ8wZmp282Na11hxBBXlV" 10 | 11 | 12 | --uWbWY2IyEtJ8wZmp282Na11hxBBXlV 13 | Content-Type: text/plain; charset=utf-8; format=flowed; delsp=no 14 | 15 | > Quote 16 | 17 | Reply 18 | 19 | --uWbWY2IyEtJ8wZmp282Na11hxBBXlV 20 | Content-Type: text/plain 21 | Content-Disposition: attachment; filename="attachment.txt" 22 | Content-Transfer-Encoding: base64 23 | 24 | ZGF0YSB0byBzZW5k 25 | 26 | --uWbWY2IyEtJ8wZmp282Na11hxBBXlV-- 27 | 28 | -------------------------------------------------------------------------------- /test-data/message/dkimchecks-2022-09-28/alice@gmail.com/alice@disroot.org: -------------------------------------------------------------------------------- 1 | ARC-Authentication-Results: i=1; mx.google.com; 2 | dkim=pass header.i=@disroot.org header.s=mail header.b=agINRXYl; 3 | spf=pass (google.com: domain of alice@disroot.org designates 178.21.23.139 as permitted sender) smtp.mailfrom=alice@disroot.org; 4 | dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=disroot.org 5 | Authentication-Results: mx.google.com; 6 | dkim=pass header.i=@disroot.org header.s=mail header.b=agINRXYl; 7 | spf=pass (google.com: domain of alice@disroot.org designates 178.21.23.139 as permitted sender) smtp.mailfrom=alice@disroot.org; 8 | dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=disroot.org 9 | From: 10 | To: 11 | -------------------------------------------------------------------------------- /test-data/message/attach_filename_encoded_words_binary.eml: -------------------------------------------------------------------------------- 1 | Subject: Test binary-encoded-words filenames 2 | Message-ID: 123456@testrun.org 3 | Date: Sat, 07 Dec 2019 19:00:27 +0000 4 | Chat-Version: 1.0 5 | To: recp@testrun.org 6 | From: sender@testrun.org 7 | Content-Type: multipart/mixed; boundary="==BREAK==" 8 | 9 | 10 | --==BREAK== 11 | Content-Type: text/plain; charset=utf-8 12 | 13 | test binary word-encoded filename, 14 | filename is " § 165 Abs" - note the leading space. 15 | 16 | as a side-effect, this also tests that the encoding-name 17 | also works in UPPERCASE. 18 | 19 | --==BREAK== 20 | Content-Type: text/html 21 | Content-Disposition: attachment; filename="=?UTF-8?B?IMKnIDE2NSBBYnM=?="; 22 | Content-Transfer-Encoding: base64 23 | 24 | PGh0bWw+PGJvZHk+dGV4dDwvYm9keT5kYXRh 25 | 26 | --==BREAK==-- 27 | -------------------------------------------------------------------------------- /fuzz/fuzz_targets/fuzz_format_flowed.rs: -------------------------------------------------------------------------------- 1 | use bolero::check; 2 | use format_flowed::{format_flowed, unformat_flowed}; 3 | 4 | fn round_trip(input: &str) -> String { 5 | let mut input = format_flowed(input); 6 | input.retain(|c| c != '\r'); 7 | unformat_flowed(&input, false) 8 | } 9 | 10 | fn main() { 11 | check!().for_each(|data: &[u8]| { 12 | if let Ok(input) = std::str::from_utf8(data) { 13 | let input = input.trim().to_string(); 14 | 15 | // Only consider inputs that are the result of unformatting format=flowed text. 16 | // At least this means that lines don't contain any trailing whitespace. 17 | let input = round_trip(&input); 18 | let output = round_trip(&input); 19 | assert_eq!(input, output); 20 | } 21 | }); 22 | } 23 | -------------------------------------------------------------------------------- /scripts/remote_tests_python.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | set -euo pipefail 3 | 4 | set -x 5 | if ! test -v SSHTARGET; then 6 | echo >&2 SSHTARGET is not set 7 | exit 1 8 | fi 9 | BUILDDIR=ci_builds/chatmailcore 10 | 11 | echo "--- Copying files to $SSHTARGET:$BUILDDIR" 12 | 13 | rsync -az --delete --mkpath --files-from=<(git ls-files) ./ "$SSHTARGET:$BUILDDIR" 14 | 15 | echo "--- Running Python tests remotely" 16 | 17 | ssh -oBatchMode=yes -- "$SSHTARGET" <<_HERE 18 | set +x -e 19 | 20 | # make sure all processes exit when ssh dies 21 | shopt -s huponexit 22 | 23 | export RUSTC_WRAPPER=\`command -v sccache\` 24 | cd $BUILDDIR 25 | export CHATMAIL_DOMAIN=$CHATMAIL_DOMAIN 26 | 27 | scripts/make-rpc-testenv.sh 28 | . venv/bin/activate 29 | 30 | cd deltachat-rpc-client 31 | pytest -n6 $@ 32 | _HERE 33 | -------------------------------------------------------------------------------- /deltachat-rpc-server/npm-package/scripts/src/convert_platform.py: -------------------------------------------------------------------------------- 1 | def convert_cpu_arch_to_npm_cpu_arch(arch): 2 | if arch == "x86_64": 3 | return "x64" 4 | if arch == "i686": 5 | return "ia32" 6 | if arch == "aarch64": 7 | return "arm64" 8 | if arch == "armv7" or arch == "arm": 9 | return "arm" 10 | print("architecture might not be known by nodejs, please make sure it can be returned by 'process.arch':", arch) 11 | return arch 12 | 13 | def convert_os_to_npm_os(os): 14 | if os == "windows": 15 | return "win32" 16 | if os == "darwin" or os == "linux": 17 | return os 18 | if os.startswith("android"): 19 | return "android" 20 | print("architecture might not be known by nodejs, please make sure it can be returned by 'process.platform':", os) 21 | return os -------------------------------------------------------------------------------- /test-data/message/dkimchecks-2022-09-28/alice@zohomail.eu/alice@hotmail.com: -------------------------------------------------------------------------------- 1 | Authentication-Results: mx.zohomail.eu; 2 | dkim=pass; 3 | spf=pass (zohomail.eu: domain of hotmail.com designates 40.92.89.94 as permitted sender) smtp.mailfrom=alice@hotmail.com; 4 | arc=pass (i=1 dmarc=pass fromdomain=hotmail.com); 5 | dmarc=pass(p=none dis=none) header.from=hotmail.com 6 | ARC-Authentication-Results: i=2; mx.zohomail.eu; 7 | dkim=pass; 8 | spf=pass (zohomail.eu: domain of hotmail.com designates 40.92.89.94 as permitted sender) smtp.mailfrom=alice@hotmail.com; 9 | arc=pass (i=1 dmarc=pass fromdomain=hotmail.com); 10 | dmarc=pass header.from= (p=none dis=none) 11 | ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=none; dmarc=none; 12 | dkim=none; arc=none 13 | From: 14 | To: 15 | --------------------------------------------------------------------------------