今天在已经被定期报废的 MacBook Pro (mid-2012) 上装了一份黑苹果,在其上装了 Thunderbird,发现 IMAP 邮件的信息不对。
经查,这些邮件的问题在于邮件的
由于
对于 Thunderbird 来说,需要做如下改动:
首先,在 Thunderbird -> Settings (或者 Command + , )在 General 页翻到最下,找到 Config Editor...,然后输入 `mailnews.customDBHeaders`,将其改为 `Received`。
改完之后重启 Thunderbird。
不幸的是,已经下载的邮件的索引并不会因此而自动变更成正确的日期值,因此需要把影响比较大的邮件夹 Repair 才能正确排序。对于 OCD 患者来说,砍掉重练永远应该是放在桌面上的选项。
#犀利而无用的知识
经查,这些邮件的问题在于邮件的
Date
头格式不对。RFC 5322 第3.3款定义的日期格式并非 ISO 8601 (https://datatracker.ietf.org/doc/html/rfc5322#section-3.3),而许多,包括 emacs 在内的 MUA 的实现都不符合该规范。由于
Date
头来自发件人,在本地篡改信头或者沿着网线去打人十分不现实。解决方法是使用由自己的邮件服务器添加的 Received
头提供的日期,因为绝大多数邮件服务器对邮件相关的 RFC 是符合规范的。对于 Thunderbird 来说,需要做如下改动:
首先,在 Thunderbird -> Settings (或者 Command + , )在 General 页翻到最下,找到 Config Editor...,然后输入 `mailnews.customDBHeaders`,将其改为 `Received`。
改完之后重启 Thunderbird。
不幸的是,已经下载的邮件的索引并不会因此而自动变更成正确的日期值,因此需要把影响比较大的邮件夹 Repair 才能正确排序。对于 OCD 患者来说,砍掉重练永远应该是放在桌面上的选项。
#犀利而无用的知识
IETF Datatracker
RFC 5322: Internet Message Format
This document specifies the Internet Message Format (IMF), a syntax for text messages that are sent between computer users, within the framework of "electronic mail" messages. This specification is a revision of Request For Comments (RFC) 2822, which itself…
❤1
拖延症患者终于得到了bug tracker的救赎,总算解决了家里网络圆环套圆环的问题。🎉
🤣1
接到了来自 +1 (513) 233-5006 的制作精美的Facetime Audio诈骗电话。
来电的骗子声称自己是FCC雇员,名字叫Hank Wang,声称有人以我的名义于北京时间6月3日10:28在厦门高崎机场办理了一部AT&T的电话,并留下了我实际的电话号码。建议我与福建公安机关取得联系。
此间,骗子尝试PUA我不了解联邦政府运作,并声称他们已经邮寄过信件然后才打的电话。
我因为手头还有别的事暂时最终以粗暴的方式终止了这场十五分钟的对话。
来电的骗子声称自己是FCC雇员,名字叫Hank Wang,声称有人以我的名义于北京时间6月3日10:28在厦门高崎机场办理了一部AT&T的电话,并留下了我实际的电话号码。建议我与福建公安机关取得联系。
此间,骗子尝试PUA我不了解联邦政府运作,并声称他们已经邮寄过信件然后才打的电话。
我因为手头还有别的事暂时最终以粗暴的方式终止了这场十五分钟的对话。
🤣3😁1
delphij's shared chaos
接到了来自 +1 (513) 233-5006 的制作精美的Facetime Audio诈骗电话。 来电的骗子声称自己是FCC雇员,名字叫Hank Wang,声称有人以我的名义于北京时间6月3日10:28在厦门高崎机场办理了一部AT&T的电话,并留下了我实际的电话号码。建议我与福建公安机关取得联系。 此间,骗子尝试PUA我不了解联邦政府运作,并声称他们已经邮寄过信件然后才打的电话。 我因为手头还有别的事暂时最终以粗暴的方式终止了这场十五分钟的对话。
复盘了一下,感觉此事两部分做的不太妥当。
其一是和对方对话时说了较多的字而不是听对方说,这可能会给对方训练语音模型去骗别人的机会。
其二是收到FT Audio的时候应该立即遮盖摄像头并发起一个视频通话。这样有机会拍到对方的样子。
等有机会迭代一下新的打法。
其一是和对方对话时说了较多的字而不是听对方说,这可能会给对方训练语音模型去骗别人的机会。
其二是收到FT Audio的时候应该立即遮盖摄像头并发起一个视频通话。这样有机会拍到对方的样子。
等有机会迭代一下新的打法。
🤣4💯3🤔1
今天见了一个多年(此处「多」大约等于20)没见的朋友,除了了解了美国其他州的卷娃心得之外最神奇的就是:原来我们这个年龄组的高中同学聚已经可以有给同学扫墓这样的项目了🤦♂️
Please open Telegram to view this post
VIEW IN TELEGRAM
😱5🤩2👍1😢1
发现某频道只允许读者发👍👏❤️三者之一。
法国启蒙时期的剧作家皮埃尔·博马舍所创作的《费加罗的婚礼》中,费加罗有一段独白:Sans la liberté de blâmer, il n’est point d’éloge flatteur.
「没有批评的自由,也就没有由衷的赞美。」
法国启蒙时期的剧作家皮埃尔·博马舍所创作的《费加罗的婚礼》中,费加罗有一段独白:Sans la liberté de blâmer, il n’est point d’éloge flatteur.
「没有批评的自由,也就没有由衷的赞美。」
👍5👏4❤3🖕3🤣2😁1
本频道读者中和我一样有自建DNS症状的病友注意更新BIND: https://www.openwall.com/lists/oss-security/2024/07/23/1
🤣4❤2
最新一期鬼故事来了。
某位朋友的网站之前运行的是 FreeBSD 12,后来一路升级,今天他老人家发消息说从 FreeBSD 14.0 升级到 FreeBSD 14.1 之后 MySQL 无法启动了,具体消息是:
我感觉这属于跨版本 ABI 变动没有抓到的重大发布事故,然而我本地的 /lib/libc++.so.1 有这个符号,并且全新安装的一份干净的 FreeBSD 14.1 上无法重现他的问题,于是要了一个 shell 登录上去看。
接下来惊喜地发现他的 mysqld 使用的是 /usr/local/lib/libc++.so.1,该文件是 libc++-208080 提供的。此包删除于2017年 https://svnweb.freebsd.org/ports?view=revision&revision=434738
删掉这个包之后 mysqld 可以动了,但又有了新问题: InnoDB 的 redo log 格式版本是0,新的 MySQL 版本不支持。
于是问题变成了需要找一份旧的 MySQL 来先启动起来,做一个 dump,升级 MySQL,重建数据库,然后从 dump 恢复。但是 MySQL 5.7 并不支持 FreeBSD 14,而且去年年底已经被砍掉了,于是搞了一个 FreeBSD 13.3 的 poudriere builder,把 ports tree 恢复到 2023Q4 来build了一份包,传到该机器上,替换掉 MySQL 8.4,这下 MySQL 终于可以启动了。
mysqldump做完之后安装新版 MySQL,删掉整个 mysql 目录,初始化 MySQL 数据库,将 *.cnf 复制回新的 mysql 目录中,然后 mysql -u root < dump,结果:
所以为什么 MySQL dump的时候连这类 stats 表也跟着一起?因为实在不想再重装一遍 MySQL 5.7,手工编辑了一下dump删掉了innodb的这些stats表的部分,这下再导入时:
这题我会,我想,于是在 my.cnf 中添加了 max_allowed_packet=1024M,这下终于导入成功了。导入之后发现:
然后发现了 https://dev.mysql.com/doc/refman/8.4/en/native-pluggable-authentication.html 。
嗯。
暂时重新启用了该插件。这下这哥们的网站总算是活过来了。
我觉得这事也不全怪 Oracle,毕竟 MySQL 5.7 在 2019 年就已经停止支持了(我就差跟这哥们说 「#你的备份呢?」 了),不过他们的数据结构支持砍的太激进了点儿。幸亏我手里还有一份之前的源代码可以重新搞一份包,不然这哥们的数据估计就交代了。
顺手看了一眼我自己的 MySQL 实例,发现我的许多 Web 服务也还在用 mysql_native_password。想了想,去票务系统里给自己开了个票,当年(2005)我做网站的时候就已经实现了用户首次登录时,如果密码验证通过的话立即把密码格式换成新的,没想到这都 2024 年了 MySQL 的做法居然是直接把问题丢给DBA……
所以今天的教训是:
1. 我个人的老生常谈:做备份,做备份,做备份。软件和数据都要做备份。
2. 平时没事多做升级,把软件弄到最新版,趁着系统维护的时间把问题暴露出来。
3. 珍爱生命,远离 Oracle 的任何产品。那位说了, PostgreSQL 也要求 dump / restore 不是吗?但人家至少知道每个大版本起一个新的目录。
#今天份草台
某位朋友的网站之前运行的是 FreeBSD 12,后来一路升级,今天他老人家发消息说从 FreeBSD 14.0 升级到 FreeBSD 14.1 之后 MySQL 无法启动了,具体消息是:
ld-elf.so.1: /usr/local/libexec/mysqld: Undefined symbol "_ZTVSt19bad_optional_access"
我感觉这属于跨版本 ABI 变动没有抓到的重大发布事故,然而我本地的 /lib/libc++.so.1 有这个符号,并且全新安装的一份干净的 FreeBSD 14.1 上无法重现他的问题,于是要了一个 shell 登录上去看。
接下来惊喜地发现他的 mysqld 使用的是 /usr/local/lib/libc++.so.1,该文件是 libc++-208080 提供的。此包删除于2017年 https://svnweb.freebsd.org/ports?view=revision&revision=434738
删掉这个包之后 mysqld 可以动了,但又有了新问题: InnoDB 的 redo log 格式版本是0,新的 MySQL 版本不支持。
于是问题变成了需要找一份旧的 MySQL 来先启动起来,做一个 dump,升级 MySQL,重建数据库,然后从 dump 恢复。但是 MySQL 5.7 并不支持 FreeBSD 14,而且去年年底已经被砍掉了,于是搞了一个 FreeBSD 13.3 的 poudriere builder,把 ports tree 恢复到 2023Q4 来build了一份包,传到该机器上,替换掉 MySQL 8.4,这下 MySQL 终于可以启动了。
mysqldump做完之后安装新版 MySQL,删掉整个 mysql 目录,初始化 MySQL 数据库,将 *.cnf 复制回新的 mysql 目录中,然后 mysql -u root < dump,结果:
Access to system table 'mysql.innodb_index_stats' is rejected.
所以为什么 MySQL dump的时候连这类 stats 表也跟着一起?因为实在不想再重装一遍 MySQL 5.7,手工编辑了一下dump删掉了innodb的这些stats表的部分,这下再导入时:
Got a packet bigger than 'max_allowed_packet' bytes
这题我会,我想,于是在 my.cnf 中添加了 max_allowed_packet=1024M,这下终于导入成功了。导入之后发现:
mysql: ERROR 1524 (HY000): Plugin 'mysql-native-password' is not loaded
然后发现了 https://dev.mysql.com/doc/refman/8.4/en/native-pluggable-authentication.html 。
嗯。
暂时重新启用了该插件。这下这哥们的网站总算是活过来了。
我觉得这事也不全怪 Oracle,毕竟 MySQL 5.7 在 2019 年就已经停止支持了(我就差跟这哥们说 「#你的备份呢?」 了),不过他们的数据结构支持砍的太激进了点儿。幸亏我手里还有一份之前的源代码可以重新搞一份包,不然这哥们的数据估计就交代了。
顺手看了一眼我自己的 MySQL 实例,发现我的许多 Web 服务也还在用 mysql_native_password。想了想,去票务系统里给自己开了个票,当年(2005)我做网站的时候就已经实现了用户首次登录时,如果密码验证通过的话立即把密码格式换成新的,没想到这都 2024 年了 MySQL 的做法居然是直接把问题丢给DBA……
所以今天的教训是:
1. 我个人的老生常谈:做备份,做备份,做备份。软件和数据都要做备份。
2. 平时没事多做升级,把软件弄到最新版,趁着系统维护的时间把问题暴露出来。
3. 珍爱生命,远离 Oracle 的任何产品。那位说了, PostgreSQL 也要求 dump / restore 不是吗?但人家至少知道每个大版本起一个新的目录。
#今天份草台
👍13❤1
说个有点好玩的事。
前段时间在北京,因为手机是漫游,我觉得有必要下载一份离线地图。除了高德地图之外就是苹果地图了,于是在苹果地图下载界面里把北京缩小,然后顺便框上了天津等等周边有可能会去的地方。
开始下载,苹果地图把这块下载区域命名为「河北」。
家住圣何塞,在北京出生长大并且住了二十几年的李先生那一瞬间感觉到技术上这么写确实好像是对的(北平特别市/北京市和天津特别市/天津市在民国和中华人民共和国时期都曾经做过河北省会),但是总觉得有一种哪里好像不太对的、微妙的、受到冒犯的感觉🤣
前段时间在北京,因为手机是漫游,我觉得有必要下载一份离线地图。除了高德地图之外就是苹果地图了,于是在苹果地图下载界面里把北京缩小,然后顺便框上了天津等等周边有可能会去的地方。
开始下载,苹果地图把这块下载区域命名为「河北」。
家住圣何塞,在北京出生长大并且住了二十几年的李先生那一瞬间感觉到技术上这么写确实好像是对的(北平特别市/北京市和天津特别市/天津市在民国和中华人民共和国时期都曾经做过河北省会),但是总觉得有一种哪里好像不太对的、微妙的、受到冒犯的感觉🤣
🕊9