新手问题 Ruby 如何发邮件?我是说不依赖第三方的发法

gazeldx · 2013年01月10日 · 最后由 1208175976 回复于 2015年04月16日 · 8666 次阅读

公司已经开通了邮件服务器,[email protected] 要我能够用 RUBY 程序发送邮件。 我目前只会用亚马逊的邮件服务 SES,但还不会用公司服务器发。

据说需要在程序中填入邮件服务器地址,用户名和密码,就能发送成功了。 有人知道原理吗?最好附一个代码演示或者 GEM 什么的,谢谢啦!

Action Mailer + sendmail

其实就用 sendmail 就行了。。sendmail 本身就可以直接发,可以去看看 sendmail 的文档。

SendMail 不靠谱

mail 这个 gem,smtp 协议。

任何试图自己发邮件的朋友,不要在错误的道路上渐行渐远…… 发邮件很简单,但是要大部分邮件准确到达对方收件箱,不被拒,不被 SPAM,不被屏蔽 IP,是一件复杂的事情。交给专业的第三方靠谱得多。

#5 楼 @kgen 最讨厌比如 Amazon SES 之类的第三方了,我的 GMail 里过滤失败的垃圾邮件都是通过这发的 ...

postfix + actionmailer , 小数量可以自己发,大数量需要你对邮件服务商的 spam 策略有所了解,反正很麻烦,不是几天能搞定的

邮件很简单,就是 base64 编码

#8 楼 @sevk 要发出去是简单,要解析就只能悲剧了 ...

解析是收邮件?那就需要写一个邮件服务了,一直监听邮件的 tcp 端口,好像是 110 吧,忘了。 接收,管理,这个有现成的 gem 的。自己写要写到什么时候啊。

#10 楼 @sevk 怎么收邮件先不管,光是找出邮件正文里的文本内容就够坑掉不止一周的时间了 ...

#6 楼 @bhuztez 所以作为开发方,使用这类第三方是很有价值的 XDDD 当然,我严重鄙视任何垃圾邮件行为!

#12 楼 @kgen 发垃圾邮件的也是这么想的...

#11 楼 @bhuztez 收邮件 + 解析也是个大坑,特别是还有来自国内一些奇葩邮件服务商的非标准格式。这事儿也推荐用第三方。

#14 楼 @kgen 收可以第三方,解析如何第三方?

#15 楼 @bhuztez 有些第三方,比如 MailGun,还支持收邮件,并把邮件内容结构化文本化,然后通过 REST API 直接返回。

照 lz 说的最简单的实现方式就是 Action Mailer + sendmail sendmail 不用管,只需要简单配一下 Action Mailer 即可 自己搭 postfix 也费点事

不过像上面很多人提的,还是用成熟的第三方服务比较靠谱 sendmail、postfix 之流虽然可以发出去,但是很大几率进入垃圾箱 而想要自己实现让邮件不被识别为垃圾邮件,成本很高,划不来

只是发注册激活邮件什么的难道不是直接发就行了咩,激活信一般不会拦吧……想要 spam 才考虑用第三方吧,人家那是专业发 spam 的,不过再专业的也架不住用户直接关键字拉黑……

mail 吧,收发都 ok~~,前段时间写了一个收邮件,并解析邮件的小功能~~~ 代码图示在 http://blog.weidaxue.me/posts/10

#16 楼 @kgen 没有吧,我记得 Mailgun 只能提取纯文本的...

我现在需要的是把 HTML 里的图片链接都搞对。因为有一种情况是 HTML 邮件的图片是放在邮件附件里的 ... 用第三方的也无解,因为第三方也不可能知道我把附件图片存哪里,只能自己造轮子了 ...

#20 楼 @bhuztez 嗯,没办法规则化的东西,第三方肯定无能为力。

#19 楼 @small_fish__ 你的小站,还没有语法高亮啊

如果量很大建议还是使用专业的第 3 方企业邮件,采用 imap 或者 smtp,至于邮件的图片文件问题可以使用 amzon S3 或者 rackspace 的文件云服务,我个人用的是 rackspace 的云服务,感觉挺靠谱的

以前用 C 实现过底层的。真要不借助第三方的话,可以用 telnet 一下 smtp 端口试试看,先发 hello 包。。然后还要解析返回的内容。你要用 ruby 实现的就是这样一个 socket 短连接客户端

github 的 mail 插件呢

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