SnappyMail
ไคลเอนต์อีเมลบนเว็บที่เรียบง่าย ทันสมัย น้ำหนักเบาและรวดเร็ว
ทางแยกที่ได้รับการอัปเกรดและปลอดภัยอย่างมากของรุ่น RainLoop Webmail Community
เราขอขอบคุณทีมงาน RainLoop ที่สร้างผลิตภัณฑ์ PHP 5 ที่ยอดเยี่ยมซึ่งในอดีตเคยดีมาก่อน
ความต้องการของระบบที่ทันสมัย ประสิทธิภาพที่รวดเร็ว ติดตั้งและอัปเกรดได้ง่าย ไม่จำเป็นต้องมีฐานข้อมูล ทั้งหมดนี้ทำให้ SnappyMail เป็นตัวเลือกที่ดี
สำหรับข้อมูลเพิ่มเติมเกี่ยวกับผลิตภัณฑ์ โปรดดูที่ snappymail.eu
ข้อมูลเกี่ยวกับการติดตั้งผลิตภัณฑ์ ตรวจสอบหน้าวิกิ
และอย่าลืมอ่านวิกิทั้งหมดด้วย
ใบอนุญาต
SnappyMail เปิดตัวภายใต้ GNU AFFERO GENERAL PUBLIC LICENSE เวอร์ชัน 3 (AGPL) http://www.gnu.org/licenses/agpl-3.0.html
ลิขสิทธิ์ (c) 2020 - 2024 SnappyMail ลิขสิทธิ์ (c) 2013 - 2022 RainLoop
การปรับเปลี่ยน
ทางแยกของ RainLoop นี้มีการเปลี่ยนแปลงดังต่อไปนี้:
- เป็นมิตรกับความเป็นส่วนตัว/GDPR (ไม่ใช่: โซเชียล, Gravatar, Facebook, Google, Twitter, DropBox, X-Mailer)
- ผู้ดูแลระบบใช้password_hash/password_verify
- การตรวจสอบสิทธิ์ล้มเหลวในการเขียนไปยัง syslog
- เพิ่มคำแนะนำ Fail2ban
- อีเอส2020
- ต้องใช้ PHP 7.4+
- จำเป็นต้องมีส่วนขยาย PHP mbstring
- PHP แทนที่ pclZip ด้วย PharData และ ZipArchive
- โหมดมืด
- เพิ่มตัวเลือกในการลบสีพื้นหลัง/แบบอักษรออกจากข้อความสำหรับ "โหมดมืด" จริง
- ลบ BackwardCapability (คลาส RainLoopAccount)
- ลบ ChangePassword (นำมาใช้ใหม่เป็นปลั๊กอิน)
- ลบการสนับสนุน POP3 แล้ว
- การสนับสนุนวิดีโอพื้นหลังที่ถูกลบออก
- Sentry ถูกลบออก (ซอฟต์แวร์ตรวจสอบแอปพลิเคชันและติดตามข้อผิดพลาด)
- ลบ Spyc yaml แล้ว
- ลบ OwnCloud แล้ว
- แทนที่ gulp-uglify ด้วย gulp-terser
- CRLF => LF การสิ้นสุดบรรทัด
- ฝัง boot.js และ boot.css ลงใน index.html
- การลบโค้ด JavaScript เก่า (สิ่งต่าง ๆ เกิดขึ้นในปัจจุบัน)
- เพิ่มตัวแก้ไข Squire HTML ที่แก้ไขแล้วเพื่อแทนที่ CKEditor
- อัปเดต Sabre/VObject
- แยกรหัส JavaScript เฉพาะผู้ดูแลระบบออกจากรหัสผู้ใช้
- แยกโค้ด JavaScript เฉพาะของ Sieve จากโค้ดผู้ใช้
- โปรแกรมฟื้นฟู JSON
- การจัดการรวบรวมขยะหน่วยความจำที่ดีขึ้น
- เพิ่มพนักงานบริการสำหรับการแจ้งเตือน
- เพิ่มตัวแก้ไขสคริปต์ Sieve ขั้นสูง
- ไฟล์ภาษาที่เพรียวบางลง
- แทนที่ webpack ด้วยการยกเลิก
- ไม่มีการตรวจหาตัวแทนผู้ใช้ (ใช้ความกว้างของอุปกรณ์)
- เพิ่มการรองรับการโหลดปลั๊กอินเป็น .phar
- แทนที่ห้องสมุด Sabre เก่า
- ที่อยู่ติดต่อในสมุดที่อยู่รองรับ MySQL/MariaDB utf8mb4
- เพิ่มการตรวจสอบส่วนหัวคำขอ Fetch Metadata
- ลดขนาด DOM ที่มากเกินไป
- รองรับกรุ๊ปแวร์ Kolab
- รองรับ IMAP RFC อื่นๆ อีกมากมาย
- รองรับ Sodium และ OpenSSL สำหรับการเข้ารหัส
- รองรับ PGP ที่ดีกว่ามาก
เบราว์เซอร์ที่รองรับ
ทางแยกนี้ใช้สคริปต์เวอร์ชันที่ลดขนาด/ทำให้ง่ายขึ้น และไม่รองรับ Internet Explorer หรือ Edge Legacy รองรับคือ:
- โครเมียม 80+
- ขอบ 80+
- ไฟร์ฟอกซ์ 78+
- โอเปร่า 67+
- ซาฟารี 13.1+
การลบ JavaScript เก่า
ผลลัพธ์ที่ได้คือโค้ดดาวน์โหลดที่เร็วขึ้นและเล็กลง (เหมาะสำหรับเครือข่ายมือถือ)
- เพิ่ม dev/prototype.js สำหรับคุณสมบัติเพิ่มเติมบางอย่าง
- แก้ไข Jua.js ให้ไม่มี jQuery
- แทนที่ Autolinker ด้วยการตรวจจับ https/อีเมลแบบง่าย
- แทนที่ MomentToNode ด้วย HTML5
ที่เหมาะสม - แทนที่ผู้ฟังการปรับขนาดด้วย ResizeObserver
- แทนที่ bootstrap.js ด้วยการแทนที่แบบดรอปอินดั้งเดิม
- แทนที่ dev/Common/ClientStorageDriver/* ด้วย Polyfill ของ Web Storage Objects
- แทนที่ *Ajax ด้วยคลาส *Fetch เนื่องจากเราใช้ Fetch API ไม่ใช่ jQuery.ajax
- แทนที่ knockoutjs 3.4 ด้วย 3.5.1 ที่แก้ไขแล้ว
- แทนที่การทำให้ล้มลงด้วยการลากและวาง HTML5 ดั้งเดิม
- แทนที่ simplestatemanager ด้วย CSS @media
- แทนที่ inputosaurus ด้วยรหัสของตัวเอง
- แทนที่คีย์มาสเตอร์ด้วยตัวจัดการทางลัดของตัวเอง
- แทนที่ OpenPGP.js v2 ด้วย OpenPGP.js v5
- ลบ ifvisible.js แล้ว
- ลบปิกาเดย์แล้ว
- ขีดเส้นใต้ที่ถูกลบออก
- ลบโพลีฟิลล์แล้ว
- นำ Modernizr ออก
- ลบ nanoscroll แล้ว
- ลบ lightgallery แล้ว
- ลบ jQuery แล้ว
- ลบ jquery-ui แล้ว
- ลบ jquery-scrollstop แล้ว
- ลบ jquery-mousewheel แล้ว
- ลบ matchmedia-polyfill แล้ว
- ลบ Momentjs (ใช้ Intl)
- ลบ opentip ออกแล้ว (ใช้ CSS)
- ลบรหัสที่ไม่ใช่ชุมชน (หรือที่เรียกว่าเปรม/พรีเมียม/ใบอนุญาต)
- ลบ ProgressJS แล้ว
RainLoop 1.17 กับ SnappyMail
เจเอส/* | เรนลูป | เร็ว |
---|
admin.js | 2.170.153 | 84.925 |
แอพ.js | 4.207.787 | 447.263 |
boot.js | 868.735 | 4.343 |
libs.js | 658.812 | 233.728 |
ตะแกรง.js | 0 | 91.418 |
โพลีฟิลส์.js | 334.608 | 0 |
พนักงานบริการ.js | 0 | 285 |
ทั้งหมด | 8.240.095 | 861.962 |
js/นาที/* | เรนลูป | เร็ว | RL gzip | SM gzip | RL บรอตลี | เอสเอ็ม บรอทลี |
---|
admin.min.js | 256.831 | 41.719 | 73.606 | 14.022 | 60.877 | 12.567 |
app.min.js | 515.367 | 202.101 | 139.456 | 68.505 | 110.485 | 58.481 |
boot.min.js | 84.659 | 2.231 | 26.998 | 1.271 | 23.643 | 1.067 |
libs.min.js | 584.772 | 110.646 | 180.901 | 39.518 | 155.182 | 35.207 |
ตะแกรง.min.js | 0 | 45.504 | 0 | 11.131 | 0 | 9.917 |
polyfills.min.js | 32.837 | 0 | 11.406 | 0 | 10.175 | 0 |
ผู้ใช้ทั้งหมด | 1.217.635 | 314.978 | 358.761 | 109.294 | 299.485 | 94.755 |
ผู้ใช้ TOTAL + ตะแกรง | 1.217.635 | 360.482 | 358.761 | 120.425 | 299.485 | 104.672 |
ผู้ดูแลระบบทั้งหมด | 959.099 | 154.596 | 292.911 | 54.811 | 249.877 | 48.841 |
สำหรับผู้ใช้ มีขนาดเล็กกว่าและเร็วกว่า RainLoop แบบเดิมประมาณ 66%
การเปลี่ยนแปลงซีเอสเอส
- แก้ jQuery ลบ "คุณสมบัติ" ด้วยโค้ด CSS ดั้งเดิม
- ธีมทำงานในโหมดมือถือ
- แก้ไขข้อผิดพลาดกฎ CSS ไม่ถูกต้อง/ขัดแย้งกัน
- ใช้เฟล็กซ์บ็อกซ์
- ใช้เส้นขอบกล่อง
- แยก app.css เพื่อให้ admin.css แยกกัน
- ลบ 'float' ของ oldschool ออก
- ลบ CSS ที่ไม่ได้ใช้ออก
- ลบ html.no-css แล้ว
- ลบ dev/Styles/Cmd.less แล้ว
- ลบ dev/Styles/Scroll.less ออก
- ลบ Internet Explorer ออกจาก Normalize.css
- ลบ node_modules/opentip/css/opentip.css แล้ว
- ลบ node_modules/pikaday/css/pikaday.css แล้ว
- ลบผู้จำหน่าย/bootstrap/less/* ที่ไม่ได้ใช้ออก
- ลบ vendors/jquery-nanoscroller/nanoscroller.css
- ลบ vendors/jquery-letterfx/jquery-letterfx.min.css
- ลบ vendors/Progress.js/minified/progressjs.min.css
- ลบ gulp-autoprefixer แล้ว
ซีเอสเอส/* | เรนลูป | เร็ว | RL gzip | SM gzip | เอสเอ็ม บรอทลี |
---|
แอพ.css | 340.331 | 85.073 | 46.946 | 17.792 | 15.210 |
แอพ.min.css | 274.947 | 68.272 | 39.647 | 15.615 | 13.636 |
boot.css | | 1.326 | | 664 | 545 |
boot.min.css | | 1.071 | | 590 | 474 |
admin.css | | 30.880 | | 7.045 | 6.127 |
admin.min.css | | 24.959 | | 6.368 | 5.615 |
พีจีพี
RainLoop ใช้ OpenPGP.js v2 SnappyMail v2.12 รุ่นเก่าใช้ OpenPGP.js v5, GnuPG และ Mailvelope SnappyMail สามารถใช้และสร้างคีย์ ECDSA และ EDDSA ได้ โดยที่ RainLoop ไม่มี
เนื่องจาก SnappyMail พยายามที่จะบรรลุประสบการณ์มือถือที่ดีที่สุด จึงแยก OpenPGP.js ออกไป
- ลบ Node.js ที่ไม่ได้ใช้ทั้งหมด
- ลบการสนับสนุนเบราว์เซอร์เก่าทั้งหมด ดู https://github.com/the-djmaze/openpgpjs เพื่อการพัฒนา
OpenPGP | เรนลูป | เร็ว | RL gzip | SM gzip | RL บรอตลี | เอสเอ็ม บรอทลี |
---|
openpgp.min.js | 330.742 | 546.165 | 102.388 | 169.207 | 84.241 | 138.688 |
openpgp.คนงาน | 1.499 | | 824 | | 695 | |
สไควร์ vs CKEditor
การใช้งาน Squire ยังไม่รองรับ 100% แต่แสดงให้เห็นค่าใช้จ่ายจำนวนมากของ CKEditor
ยังคงต้องทำ:
- รองรับตาราง (จำเป็นจริงๆ ?!?)
| ปกติ | นาที | gzip | ขั้นต่ำ gzip |
---|
นายทุน | 122.321 | 41.906 | 31.867 | 14.330 |
ผู้ควบคุมดูแล | - | 520.035 | - | 155.916 |
CKEditor รวมถึงคำขอเนื้อหา 7 รายการ (css, ภาษา, ปลั๊กอิน, ไอคอน) คือ 633.46 KB / 180.47 KB (gzip)