2012-03-25 32 views
7

Tôi đang viết một ứng dụng Nodejs cần có khả năng gửi email. Cho đến nay, tôi đã sử dụng Postfix kết hợp với một mô-đun Nodejs gọi là Nodemailer để gửi email của tôi thông qua Amazon SES.Ký email bằng DKIM trong Node.js

Postfix đã xử lý việc ký DKIM, nhưng bây giờ tôi muốn loại bỏ postfix và chỉ sử dụng Nodemailer để gửi email thông qua Amazon SES.

Vấn đề duy nhất của tôi hiện đang tìm cách ký email trong Nodej. Tôi đã nghĩ đến việc chạy một lệnh opendkim bằng cách sử dụng "exec" trong nút nhưng không thể tìm ra điều đó. Từ tìm kiếm, có vẻ như không có mô-đun cho việc này.

Có ai có thể giúp tôi về điều này không?

Trả lời

8

Phiên bản mới nhất của Nodemailer hỗ trợ DKIM đăng xuất khỏi hộp, cũng được thử nghiệm với SES.

var transport = nodemailer.createTransport("SES", { 
    AWSAccessKeyID: "AWSACCESSKEY", 
    AWSSecretKey: "AWS/Secret/key" 
}); 

// all messages sent with *transport* are signed with the following options 
transport.useDKIM({ 
    domainName: "example.com", 
    keySelector: "dkimselector", 
    privateKey: fs.readFileSync("private_key.pem") 
}); 

transport.sendMail(...); 
+0

Ồ, tôi không biết điều này. Cảm ơn bạn đã chia sẻ. – Ryan

+1

Có vẻ như trong NM v1.8, họ thay đổi nó để sử dụng nodemailer-dkim NPM –

5

bạn có thể tìm thấy tại https://gist.github.com/2198497 triển khai mà tôi đã phát triển để dkim ký thư được gửi qua SES. Nó được lấy cảm hứng từ việc thực hiện php bởi Ahmad Amarullah tìm thấy ở đây: http://code.google.com/p/php-mail-domain-signer/. Tôi nhận thức được mã này rất xa, nhưng nó sẽ giúp bạn bắt đầu. Các thư được gửi qua nó được coi là chính xác bởi gmail và yahoo. Đừng ngần ngại nếu bạn có câu hỏi/không thể làm cho nó hoạt động.

+1

Bạn đá! Cảm ơn rất nhiều vì chuyện này. Bạn có lẽ nên suy nghĩ về việc thêm nó vào npm. – Ryan

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