2013-12-11 21 views
6

Từ tài liệu (http://docs.meteor.com/#email), có vẻ như việc gửi email khá đơn giản với Meteor. Chỉ cần thêm gói, sau đó chỉ định thông tin xác thực của nhà cung cấp email bên thứ 3 của bạn trong MAIL_URL.Nhận email trên Meteor?

Hiện tại, tôi đang cố gắng phát triển khả năng nhận email. Chúng tôi cần cơ sở này để nói hủy đăng ký người dùng khỏi hệ thống của chúng tôi hoặc cho phép người dùng nhập dữ liệu bằng cách chỉ trả lời email của họ.

Tôi chỉ muốn biết, cách tốt nhất để làm điều này là gì? Có thể nhận và phân tích cú pháp các email từ bên trong giải pháp Meteor của tôi hay tôi cần thiết lập một giải pháp riêng biệt để thực hiện việc này?

Nếu được, tôi đang chạy một trang web sao băng ngoài một máy ảo xanh (trong ubuntu) và nhà cung cấp bên thứ 3 của chúng tôi là SendGrid.

+0

Bạn có nhận email trên máy và bản ghi DNS MZ và tất cả các bản ghi đã được thiết lập chưa? Hay đó là một phần của câu hỏi? –

+0

@ChristianF: Không, tôi không xin lỗi. Tôi chỉ có khả năng gửi email từ Meteor vào lúc này. – Diskdrive

Trả lời

2

Trước tiên, bạn cần phải thiết lập máy của mình (hoặc một thiết bị khác) để thực sự có thể nhận email. Điều này trong chính nó là một chút của một nhiệm vụ và không siêu đơn giản và sẽ liên quan đến việc thiết lập một bản ghi MX trên máy chủ tên của bạn là tốt. Nó sẽ yêu cầu một số đọc. Đây có thể là một nơi để bắt đầu: https://help.ubuntu.com/12.04/installation-guide/i386/mail-setup.html

Một khi bạn có khả năng gửi email đến máy chủ, bạn có thể sử dụng một cái gì đó như thế này để lấy email vào nút/sao băng: https://github.com/mscdex/node-imap https://atmosphere.meteor.com/package/meteor-node-imap

Nếu bạn 'd thay vì có Node.js tự chạy một máy chủ smtp để nhận thư, bạn có lẽ sẽ muốn nhìn vào một cái gì đó như thế này: https://npmjs.org/package/simplesmtp

+0

Thông báo: simplesmtp không được chấp nhận và máy chủ không hoạt động (đối với tôi) bằng cách sử dụng nút v0.10 + - hãy thử [smtp-server] (https://github.com/andris9/smtp-server) thay thế. – Soren

2

Nếu bạn muốn nhận email, bạn có 2 lựa chọn chính:

Tùy chọn đầu tiên

Đầu tiên là thiết lập máy chủ email để nhận email, lưu trữ email đó và truy cập email. Tôi muốn giới thiệu Haraka để thực hiện việc này. Bạn có thể cài đặt nó trên máy chủ của bạn, chạy nó, và sau đó thêm một plugin như haraka-couchdb hoặc haraka-redis để lưu trữ email vào cơ sở dữ liệu. Sau đó, bạn chỉ có thể truy vấn cơ sở dữ liệu đó và kéo nội dung email ra ngoài. Sau đó, bạn chỉ cần phân tích nó. (Tôi thấy phương pháp này dễ dàng hơn thiết lập postfix với sự hỗ trợ IMAP và tiếp tục chạy mà)

Lựa chọn thứ hai

Lựa chọn thứ hai là sử dụng Parse Webhook SendGrid của (kể từ khi bạn đã là khách hàng với chúng tôi - tuyên bố từ chối trách nhiệm: Tôi là nhà truyền giáo phát triển với SendGrid). Có một hướng dẫn người mới bắt đầu để làm điều này ở đây:

http://sendgrid.com/blog/parse-webhook-tutorial/

Và một ví dụ ứng dụng ở đây:

https://github.com/scottmotte/sendgrid-parse-api-example

3

Tôi cũng một Thánh tại SendGrid. Dưới đây là quy trình nhận email gửi đến với webhook phân tích cú pháp của chúng tôi trong Meteor:

  1. Thiết lập Thiên thạch là trình quản lý gói cho thiên thạch.Thủ tục cài đặt tại đây: https://github.com/oortcloud/meteorite

  2. Chạy mrt add router trong dòng lệnh.

  3. Tiếp sửa đổi javascript của bạn để thêm một tuyến đường:

Meteor.Router.add ({ '/ inbound': function() {

post = this.request.body ;

subject = post.subject;

body = post.body;

0.123.

trả về [200, "Thành công"]}});

Bạn có thể thấy một ví dụ sống của nhận email nội địa ở đây: http://hook.meteor.com và mã nguồn cho điều này là có sẵn ở đây: https://github.com/kunal732/sgmeteor

Đây là một bài viết trên blog, tôi đã viết về chủ đề này cũng để tham khảo hơn , http://sendgrid.com/blog/receive-inbound-email-meteorjs/

Các vấn đề liên quan