dup2.com 上线全局邮件存档功能
邮箱管理员可以给自己管理的域设一个用来存档的 email 地址。
当这个 email 地址验证通过并开启存档开关后,这个域所有的出入 email 都会被密送(暗送)到这个用来存档的 email 地址上去,达到全局邮件存档的效果。
邮箱管理员可以给自己管理的域设一个用来存档的 email 地址。
当这个 email 地址验证通过并开启存档开关后,这个域所有的出入 email 都会被密送(暗送)到这个用来存档的 email 地址上去,达到全局邮件存档的效果。
我碰到这个问题由来是,在某个 model 里,foo_id、bar_id 两个字段都是别的表里的外键,但是在 serializer 里我又不想显示 foo_id,而想显示 foo_id 所代表的真正的意义
通过上面这段代码能很好地达到我的目的。好,问题来了,我想把 foo_id 和 bar_id 的关系存入表中,如果用 foo_id 和 bar_id 的话,request.data 里必然存在输入的 bar_id,但是我的实际输入是 bar,我必须要重载 validate 方法,把 bar 去掉,那么我在 views.py 里手动把 bar 对应的 bar_id 取到,然后塞进 request.data 里好了。然后
想得挺好,运行时却报了 NOT NULL constraint failed 的错!!!
网上搜了半天,没有什么结果,提供的答案都是告诉你检查一下是不是有必填的字段没有给数据。但真正碰到这个问题的,而且还寄望通过搜索解决问题的,基本上都会先保证必填的字段里有数据,可现在数据都有了,为什么还会报这个错???
我打印了 FooBarRelationshipSerializer 里用 foo_id 和 bar_id 时的 request.data 和现在的 request.data,里面的数据一模一样!!!但是就是前者的 serializer.save 能成功,后者报错。。。
思来想去,可能同样的 request.data,但经过 serializer = self.get_serializer(data=request.data) 后,serializer 会不同,谁知道 get_serializer 里有什么鬼(不看源码了)。尝试直接把 bar_id 作为参数传给 save 方法,就像这样 serializer.save(foo_id=foo_id, bar_id=bar_id),结果当然是成功存入数据库。哈哈。
有时候想在 DRF 的 api 里塞一些跟 model 无关的,但又是必须要处理的数据,比如设密码时,为了保证输入无误第二次输入的 password,这种信息一般设为只写。
这个时候 serializers.py 里,把 validate 方法重载一下,在里面删掉 request.data 里实际上 model 不需要的数据就 ok 了。
当然,在 views.py 里,需要校验一下 password 和 confirm_password 是否输入了,如果输入了,是否一致
有时候想在 DRF 的 api 里塞一些跟 model 无关的信息,比如一些提示的信息,这种信息本身跟业务没有关系,设为只读。
这个时候 serializers.py 里:
这个时候 models.py 里:
邮件组的可投递级别分为 4 个级别:
0 - 无限制(任何人都能往邮件组发信)
1 - 同一域名内的 email 地址和白名单中的 email 地址可以往邮件组发信
2 - 邮件组内 email 地址和白名单中的 email 地址可以往邮件组发信
3 - 仅白名单中的 email 地址可以往邮件组发信
仅仅针对本域内的邮件传送进行自动回复
用户可以设置自动回复生效的时间段
当前每个发件人只会收到一封自动回复
国内的访问速度有明显提升,快的时候ping延迟只有50ms
下一个预计新增加的功能是自动回复
目前该功能仅邮件用户可用,可查看自己最近50封发出的邮件,和50封从外部送达的邮件;暂时还不提供管理员查询域下来往邮件的功能
PS: 东京机房正在进一步测试中,预计将于一个月内搬迁过去
ssh 对传输内容做了很好的加密;但是很容易被深度检测判断出通信正在走 ssh 协议;
有些公司或组织会阻碍对外的 ssh 连接,即使换了 22 端口,也可能会被深度检测判断出来阻断
总之最后有人给 openssh 增加了一层混淆的保护,以绕过深度检测的判断,这就是 obfuscated-openssh
Win32 客户端层面,Bitvise 也支持该协议;Putty 则有人搞了一个 Potty 的分支
最新的 OpenSSH patch 被收集在 https://github.com/zinglau/obfuscated-openssh-patches
维护者的说明在 https://zinglau.com/projects/ObfuscatedOpenSSHPatches.html
他也维护了一个 Ubuntu ppa 的源 https://launchpad.net/~zinglau/+archive/ubuntu/obfuscated-openssh
我注意到这个项目是因为最近自用的 ssh 也有些不正常,于是找到了这个方案;而且顺手把 7.0_7.1 的 patch 移植到了 7.2 上,不晓得 pull-request 是否会被接受
Update: 俺的补丁已经被作者合并,7.2 的握手协议部分比之前还有点点变化,稍微思考了一下才得到一个比较完美的patch
通过 dup2.com SMTP 发送邮件的,发信人姓名被强制重写为管理员配置的 displayname
另外 dup2.com 的 SA 们正在谋划是否把 dup2.com 搬迁到东京机房
最新评论