新手问题 有没有好点的邮件服务器,求推荐

ycxxww · 2014年07月12日 · 最后由 duanxiaojie 回复于 2015年01月08日 · 15260 次阅读

由于发信量比较大,而腾讯的企业邮箱,每天有发信数量限制。。。。

求 推荐

sendcloud

自己用 postfix admin+dovecot 搭建一个吧!到一定程度

@colorfulberry 自己搭建的,发出去的邮件会不会被很多邮件服务器当垃圾邮件?

主要是海外用户:Mailgun,API 超赞,QQ 邮箱会收不到。 主要是国内用户:SendCloud,API 一般,Gmail/Yahoo 邮箱会收不到,而且内容需要先提交人工审核。

@kgen 主要国内国外的用户都有!

SendCloud +1

# mail service
gem "postmark-rails", "~> 0.5.0"

#9 楼 @ycxxww 都有的话就看自己选择啦,最完美的当然是根据用户邮箱是国内还是国外,分别用不同的服务发。 如果开发成本限制,你就只能选择是放弃 QQ 用户还是 Gmail 用户咯~

#8 楼 @kgen

mailgun 发 qq 邮箱没问题呀

#13 楼 @xiaoronglv 我用 mailgun 发 qq 邮箱发是发出去,但是经常进垃圾箱

#12 楼 @kgen @jasl 有一段 sample code,根据域名选择不同的 smtp 服务器,写得蛮简单的。

有闲没钱的可以这样干:自己写一个负载均衡,然后注册一堆 QQ、Gmail、163 邮箱作为 Backend,在负载均衡处提供 HTTP API 给 App 用。

#13 楼 @xiaoronglv 我说的是整体情况,你要发送少量的话,完全不在我说的情况内。 国内好几家互联网创业公司或者创业者都用的 Mailgun,我们互相交流了一下情况,QQ 邮箱的到达率非常不稳定。

QQ 邮箱的流控是有问题的,它不是按照国际上常规的方式来流控和区分垃圾邮件来源的,而是粗暴地按照一个 IP 进行数量控制。比如: 你的 IP 日均发送 QQ 邮箱 5000 封,今天别人发了 4800 封,你要发 1000 封,那么 200-500 封成功,其他失败。 如果你是独立 IP,几周没发邮件给 QQ 邮箱了,今天突然发送 1000 封,很可能只有 100 封成功,其他失败。 国内的网易,和国外所有知名服务商都没有此类问题。

#16 楼 @_samqiu 这种做法会被反垃圾邮件规则全部过滤掉,几乎全部进垃圾邮箱的。你可以看看主流的垃圾邮件规则。

#18 楼 @kgen 不太明白,这点触发了什么样的规则?假设我发送了 1 万封邮件,其中 1 千封是 QQ 邮箱,然后用 10 个 QQ 企业邮箱作为 Backend 发送出去,平均每个企业邮箱发 100 封,这样也会被过滤?

当然我没有这样干过,我用的是 Mailgun 的独立 IP …

#19 楼 @_samqiu 我本来是考虑,那你用 10 个不同的 Email 地址发邮件,会被认为有垃圾邮件倾向,但是后来一想,做好 DKIM 签名以后,好像也没有问题的。

所有通过 QQ 邮箱发给我简历的同学,都会回复一封邮件,劝说对方放弃 QQ 邮箱。

#7 楼 @kgen SPF + DKIM 签名,一般邮箱都不会标记为垃圾邮件。我们就是用自己建的邮件服务器的。

#23 楼 @RainFlying 你们怎么做到发送邮件不给 spam,我们拿以前一封邮件内容稍微测试 1000 个人,发现以前通过 sendcloud 发有 80% 打开率,但是自己的服务器就 5%

#12 楼 @kgen

class BaseMailer < ActionMailer::Base
  abstract!
  layout 'mailer'
  default content_type: 'text/html',
             reply_to: '[email protected]'

  SMTP_SERVERS = {
      white: {
          from: 'KnewOne <[email protected]>',
          delivery_settings: {
              address: 'smtp.mailgun.org',
              port: 25,
              domain: 'knewone.com',
              user_name: USERNAME,
              password: PASSWORD,
              authentication: 'plain',
              enable_starttls_auto: true
          }
      },
      default: {
          from: 'KnewOne <[email protected]>',
          delivery_settings: {
              address: 'smtpcloud.sohu.com',
              port: 25,
              user_name: USERNAME,
              password: PASSWORD,
              authentication: 'login',
              domain: 'sendcloud.org'
          }
      }
  }

  WHITES = %w(gmail.com ruby-china.org)

  def mail(headers = {}, &block)
    if self.delivery_method == :smtp
      smtp_config = route_smtp_server(headers[:to])
      m = super headers.merge(from: smtp_config[:from]), &block
      m.delivery_method.settings.merge!(smtp_config[:delivery_settings])
      m
    else
      super headers, &block
    end
  end

  private

  def route_smtp_server(email)
    SMTP_SERVERS[(WHITES.include?(/.*@(.+)/.match(email)[1]) ? :white : :default)]
  end
end

其实应该用 http://guides.rubyonrails.org/action_mailer_basics.html#intercepting-emails 来实现,不过当时顺手写的,懒得重构了

#21 楼 @lgn21st 还别说,qq 邮箱是国内邮件服务里兼容性最好的...完全没有拒收的情况

我们量小的时候用 QQ 企业邮箱,没有发生过服务器拒收情况,后来量大转用 Sendcloud 发国内配合 Mailgun 发国外,注意 sendcloud 发送 sina 会被拒收,不道是不是我们的个别情况

另外有个坑,Sendcloud 即使是收费用户每日也有配额,而且你不能通过花更多钱来提高,只能通过他文档里介绍的提高信用度来提高配额,然后半独立 ip 和独立 ip 要申请,不直接和他们团队沟通,根本申请不下来

另外最大的坑就是,sendcloud 因各种原因(超过配额、欠费)拒收之后 Rails 这端会给无厘头的异常 EOFError: end of file reached 遇到之后第一时间登录到 sendcloud 上检查配额余额之类的情况就好

用 SMTP 发邮件给 QQ 邮箱基本都进垃圾箱,实战结果。不过我的很多用户都会看垃圾箱

已经没有人用 sendgrid 了吗?发 QQ 邮箱也都 ok

#26 楼 @jasl 我们这里是在讨论用 mailgun 发邮件被拒收的事情,用 sendcloud 发 QQ,用 mailgun 发国外,这个做法是能解决问题,但是这不代表我们的做法是对的,也不能代表 QQ 的做法是对的,到底是我们的错?还是 QQ 的错?还是 Mailgun 的错?

#27 楼 @jasl 另外,坛子里面很多朋友都用 Gmail 的邮件,Gamil 表现一般都非常稳定,但是当你收发 QQ 邮件的时候,你会发现正常的邮件 Thread 被 QQ 邮箱发出的邮件给打断,于是大家各种吐槽,各种诉求,各种 Feedback 给 QQ,这个问题始终不被解决,到底是我们的错?还是 Gmail 的错?还是 QQ 的错?弄得各大 Google group 明确声明版规,禁止使用 QQ 邮箱申请加入或者参与讨论......

多 google 自然人账户 轮询发送 呵呵 我们之前使用的策略

#31 楼 @lgn21st 我说的就是企业 qq 长期作为 smtp 来看几乎没有发生过拒收情况(没有接收到用户反馈),sendcloud 还有 mailgun 都有各自的禁地,至于 thread 被 qq 邮件打断,没注意过

@jasl 我自己搭建的邮件服务器做了反解并且通过了 spam 过滤机制,但是群发的话 qq 有被拒收邮件!

#34 楼 @colorfulberry 你这里说的 qq 是接收方吧?我在说 qq 企业邮箱作为 SMTP Server 的情况

需要 登录 后方可回复, 如果你还没有账号请 注册新账号