CupTools
V2EX  ›  Node.js

上次说到用 nodejs 重写一个邮件系统

  •  1
     
  •   CupTools · Apr 29, 2016 · 8200 views
    This topic created in 3849 days ago, the information mentioned may be changed or developed.

    然后下文就是,开源咯

    丑陋的 installation guide

    系统架构

    现在已经跑了三个月,目前感觉良好,可以继续考虑逐步淘汰 Gmail

    Supplement 1  ·  Apr 29, 2016
    as of 04/29/2016 PDT ,我正在重构整个架构。先不要下来折腾,到时另行通知
    Supplement 2  ·  Apr 29, 2016

    好了,重构完毕。RX,Misc,和Webmail的后端整合到了一个API。Updated Guide

    Supplement 3  ·  Apr 30, 2016

    系统架构图:

    Dermail Architecture v2

    半完成的API文档

    33 replies  •  2016-04-30 16:05:24 +08:00
    newghost
    newghost
    Apr 29, 2016
    1
    不错呀…… 所有邮箱都能收到吗?
    信发多了会不会被新浪、网易、 QQ Block?
    emptyhua
    emptyhua
    Apr 29, 2016
    2
    撸主好有毅力!
    qihboy
    qihboy
    Apr 29, 2016
    3
    域名无法访问
    shellcodecow
    shellcodecow
    Apr 29, 2016
    4
    awesome
    lizheming
    lizheming
    Apr 29, 2016
    5
    心疼这回调…→_→ 不过页面真的很赞诶~
    domty
    domty
    Apr 29, 2016
    6
    calllback hell...
    mufeng
    mufeng
    Apr 29, 2016
    7
    @lizheming 回调感人
    SharkIng
    SharkIng
    Apr 29, 2016 via iPhone
    8
    我一直很想知道有么打算把整个 sdapi.net 的构架和简单搭建情况写一些我们可以学习下的
    CupTools
    CupTools
    OP
    Apr 29, 2016
    9
    @lizheming
    @mufeng

    回调只是我懒。到时我会在 web gui 加上自助加域名和帐号。
    CupTools
    CupTools
    OP
    Apr 29, 2016
    11
    @SharkIng 会的,太忙,有时间就写
    fds
    fds
    Apr 29, 2016❤️1
    12
    哦,虽然楼主可能知道,但我还是想说,回调那里建议写成

    function tableRemove(name) {
    return function() {
    return r.table(name).delete.run(conn)
    }
    }
    tableRemove('users')()
    .then(tableRemove('domains'))
    .then(tableRemove('accounts'))
    ...
    .then(function(){
    actual(conn)
    })
    CupTools
    CupTools
    OP
    Apr 29, 2016
    13
    @fds 我是太懒写好看...那个文件只是临时抱佛脚写出来
    fds
    fds
    Apr 29, 2016
    14
    @CupTools 理解。一般高产的人都不会太在意这些小地方 ;p
    CupTools
    CupTools
    OP
    Apr 29, 2016 via Android
    15
    @newghost 这是你要自己搭的 邮件会不会被 block 得看你的 ip 和 spf
    miyuki
    miyuki
    Apr 29, 2016 via Android
    16
    发 Gmail 不会被 spam 吗
    SlipStupig
    SlipStupig
    Apr 29, 2016
    17
    我用 python 实现了完整的 edm 系统,只是没界面,关于怎么过 spam 检测,这个国内基本上能过,不知道有没兴趣一起玩
    CupTools
    CupTools
    OP
    Apr 29, 2016 via Android
    18
    @miyuki 不会。 outlook 都没问题
    CupTools
    CupTools
    OP
    Apr 30, 2016 via Android
    19
    @SlipStupig 只要 IP 没被黑名单 SPF 正确 基本不会被 Spam
    SlipStupig
    SlipStupig
    Apr 30, 2016
    20
    @CupTools 太天真你一天出 100 万邮件看看,发一两封邮件没啥意义
    CupTools
    CupTools
    OP
    Apr 30, 2016
    21
    @SlipStupig 要是一天 100 万邮件就不要自己搭了。 ManDill, MailGun, Amazon SES 等等都比自己搭发 marketing 好。非法的话除外
    CupTools
    CupTools
    OP
    Apr 30, 2016
    22
    @SlipStupig 国外你想过 SPAM ,几个条件:
    1. IP 没黑名单
    2. SPF 要正确
    3. DKIM 最好也有

    IP 不能是完全清白,之前要有发邮件成功的记录,那么 Outlook 就不会卡掉。 Gmail 反而不管
    SlipStupig
    SlipStupig
    Apr 30, 2016
    23
    @CupTools 这个还是有一些方法的,这些没啥用,成本高,自己建设这块, spam 绕过我研究了很久基本上套路都摸清楚, dkim 什么 spf 这些都是找抓,你发不了太多, edm 嘛成本尽可能低,速度尽量要快,靠别人平台你一定亏,除非你是暴利,否则你这么做本都收不回来
    owt5008137
    owt5008137
    Apr 30, 2016 via Android
    24
    相当不错啊,不知道垃圾邮件过滤怎么样?因为我发现自建 mail 服务器似乎很容易收到垃圾邮件,而且 gmail 和 outlook 这方面都做得不错
    firefox12
    firefox12
    Apr 30, 2016 via iPhone
    25
    不太懂 不知道 pop3 smtp imap 这些协议支持吗? 这些协议是自己重新实行的吗?还是 调用别人的核心模块 有点类似使用 ie 内核开放了一个浏览器。

    如果是完全自己开发的核心模块,是否在安全性 性能上有过比较?

    只是为做了一个很炫的 UI ?我觉得作为现在邮件系统的插件系统可以让更多的人受惠。
    CupTools
    CupTools
    OP
    Apr 30, 2016 via Android
    26
    @firefox12 SMTP 用的是 https://github.com/andris9/smtp-server 基于这个模块而写出来的一整个邮件系统。 UI 只是其中一个部件 通过 API 调用资源,浏览器渲染。

    IMAP 还在研究中 RFC 实在太复杂
    CupTools
    CupTools
    OP
    Apr 30, 2016 via Android
    27
    @owt5008137 垃圾过滤还没有 SpamAssasin 这些是渣 不打算用他们。本来想用 nodejs 写一个 machine learning ,耗时太长,写了一半,还没成型。

    现在是靠 filter 去拦截 spam
    cchange
    cchange
    Apr 30, 2016
    28
    经验比项目本身可能更重要
    SharkIng
    SharkIng
    Apr 30, 2016
    29
    @CupTools 太感谢了,已经受益匪浅了 如果能有一个相对比较详细的构架解释的话就更好了
    CupTools
    CupTools
    OP
    Apr 30, 2016
    30
    @SlipStupig :doge: 没考虑到这么多 望请多多指教
    CupTools
    CupTools
    OP
    Apr 30, 2016
    31
    @cchange 是的。这是我第四个大型项目。

    第一个是 PHP 写的 DNS 。 4 年前写的东西,很久没维护了。
    第二个是 sdapi.net 的整个架构。从 选硬件 买硬件 拼硬件 到 拉线 装系统 装软件 跑私有云 各种服务
    第三个是 HostMyNUC 的整个管理和销售系统
    第四个是 Dermail

    其中还写过 SSH/VPN 的控制面板,当初 FreeRadius 还留行的时候,各种奸商卖梯子工具
    还有很多很多项目。唯一挣钱的还是帮一个 IDC 写个后台,直接模仿用户 Actions ,相当现在的 Phantom.js 之类。 4 年前哪有这么高级的东西,都是一行行码写出来的。
    SlipStupig
    SlipStupig
    Apr 30, 2016
    32
    @CupTools l 留个联系方式一起交流呗
    kn007
    kn007
    Apr 30, 2016
    33
    Star 。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   2472 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 75ms · UTC 12:14 · PVG 20:14 · LAX 04:14 · JFK 07:14
    ♥ Do have faith in what you're doing.