liujia 发布的文章

《绿山墙的安妮》 - 蒙哥马利

小说写得温馨,犹如看卡通故事般,读后觉得有趣且受益。回想起来,有几件事令我印象深:一是安妮刚见马修时,说要自己提手提包,因为提手提包要“技巧”——要从某个角度提才行。这令我想起,我自己生活中,也常有这样的“技巧”,如旧的遥控器要“特别”地摁,才能遥得到;二是马修因为对安妮的小学有意见,所以打算投保守党的票。不是吧?如果这本小说是写于1905年的,那时的加拿大普通人家就可以投票了吗?三是马修坚持存钱的银行破产了。看来,在资本主义的市场经济环境中,要理性投资。

链接:https://book.douban.com/subject/1064841/

iRedMail - 对指定用户设置限制 - 仅允许收信 不能发信 - iredapd

需求:因为主机商对滥发邮件管得严格,所以想对指定用户设置限制,设置为可以收到邮件,但不能发出邮件。

环境:iRedMail 1.6.2,ubuntu 20.02

尝试:

作用:将 liujia@example.com 用户加到不允许发信但可收信的列表
python3 /opt/iredapd/tools/wblist_admin.py --outbound --account liujia@example.com --add --blacklist @.

作用:列出当前的黑名单
python3 /opt/iredapd/tools/wblist_admin.py --outbound --account liujia@example.com --list --blacklist

作用:将 liujia@example.com 用户从不允许发信但可收信的列表移除
python3 /opt/iredapd/tools/wblist_admin.py --outbound --account liujia@example.com --delete --blacklist @.

参考:

《全球通史》 - 斯塔夫里阿诺斯

斯塔夫写的《全球通史》,挺好看的。记得中小学时看历史课本,我只是挑有插图的书页来看,或当老师讲到历史上的奇人怪事才会用心听。这本书讲了很多东西,让我了解到的有:一、原来宗教这么厉害的。以前的“教皇”是老大,一个人能统治很多个国家。二、阿拉伯数字,1,2,3是阿拉伯人跨地区传播开的;我们汉字现在使用的拼音字母是拉丁字母,古罗马帝国繁盛时传播开的。三、网络中调侃的“非洲黑人”,有可能是各大陆居民移民的源头。我以前也曾零星地听过这些事,但通过这本书里,串在一起地、从长长历史叙述中了解到,显得更有逻辑、可信。

参考:https://book.douban.com/subject/10583099/

iredmail - 手动删除用户的默认目录 - 批量删除邮件

需求:邮件塞满了磁盘的inodes。无需备份,直接强制删除所有用户的邮件。

尝试:

#!/bin/bash

# 先停止postfix
/usr/bin/systemctl stop postfix

# 导出用户名单到文件
doveadm user *@* > /run/mailtmp.txt
# 从文件每行读取用户名,再根据用户名得到用户默认存储目录,如 /var/vmail/vmail1/example.com/z/z/9/zz9976-2023.04.19.20.47.38/ ,最后删除相应的目录
cat /run/mailtmp.txt | while read LINE; do
    su -s /bin/bash vmail -c "rm -rf `doveadm user -f home $LINE`"
done

/usr/bin/systemctl start postfix

参考:

在 debian 11 的 exim4 里设置 dkim 发信

需求:exim4 发信时,邮件头里打上 dkim 的签名。
步骤:

  1. genrsa -out dkim.key 2048 # 生成一个2048位的私匙
  2. openssl rsa -in dkim.key -out /dev/stdout -pubout -outform PEM # 生成公匙,复制好
  3. chown Debian-exim:Debian-exim dkim.key # 修改权限,让exim能读到私匙
  4. /etc/exim4/exim4.conf.localmacros # 创建自定义的exim参数值,如以下内容:

    DKIM_CANON = relaxed
    DKIM_SELECTOR = dkim
    DKIM_DOMAIN = gd.anqun.org
    DKIM_PRIVATE_KEY = /etc/exim4/dkim/$dkim_selector.key
    DKIM_STRICT = true
  5. vi /etc/exim4/conf.d/transport/30_exim4-config_remote_smtp_smarthost # 默认dkim仅在remote_smtp的trnasport配置文件里,但本例是使用 remote_smtp_smarthost,所以需要将相应的dkim内容从 remote_smtp 复制到 remote_smtp_smarthost,如:

    .ifdef DKIM_DOMAIN
    dkim_domain = DKIM_DOMAIN
    .endif
    .ifdef DKIM_SELECTOR
    dkim_selector = DKIM_SELECTOR
    .endif
    .ifdef DKIM_PRIVATE_KEY
    dkim_private_key = DKIM_PRIVATE_KEY
    .endif
    .ifdef DKIM_CANON
    dkim_canon = DKIM_CANON
    .endif
    .ifdef DKIM_STRICT
    dkim_strict = DKIM_STRICT
    .endif
    .ifdef DKIM_SIGN_HEADERS
    dkim_sign_headers = DKIM_SIGN_HEADERS
    .endif
  6. 之后更新exim4的配置,且重启服务:

    update-exim4.conf.template -r
    update-exim4.conf
    systemctl restart exim4
  7. 到域名的解析面板,设置好相应的txt记录,如将 dkim._domainkey.gd.anqun.org 的 txt 值设置为:v=DKIM1; p=MIIB...
  8. 发封测试邮件到gmail,如成功,在 show original 里会显示 DKIM PASS
  9. 如有错误,请查看日志文件:/var/log/exim4/mainlog

参考: