在我的网络应用程序中,我有一些实例,我想让用户向当地代表发送电子邮件。但我不想公开该用户的电子邮件,因此我希望从a_user_name@mydomain.com发送电子邮件,其中a_user_name因发送者而异。
我迷失的地方是如何处理有人回复该电子邮件的情况,我需要将其发送给原作者。我希望能够抓住该电子邮件,在我们的数据库中查找用户,并向他们发送电子邮件通知他们回复。我如何完成最后一部分?
使用Rails + Amazon SES
谢谢!
答案 0 :(得分:0)
您可以使用Base64.encode64
2.0.0-p481 :029 > encrypted_email=Base64.encode64('mike@gmail.com')
=> "bWlrZUBnbWFpbC5jb20=\n"
2.0.0-p481 :030 > Base64.decode64(encrypted_email)
=> "mike@gmail.com"
2.0.0-p481 :037 > crypt = ActiveSupport::MessageEncryptor.new(Rails.configuration.secret_token)
=> #<ActiveSupport::MessageEncryptor:0xcd4d6fc @secret="c07692942cde247c96ea3da23a4d6406ebdad7c37f63c13e100731ce03ce24088dbe419da154fb7e504e777c60c7f6f8850d27f8cb8b7968602244ce5c21bfb3", @cipher="aes-256-cbc", @verifier=#<ActiveSupport::MessageVerifier:0xcd4d4e0 @secret="c07692942cde247c96ea3da23a4d6406ebdad7c37f63c13e100731ce03ce24088dbe419da154fb7e504e777c60c7f6f8850d27f8cb8b7968602244ce5c21bfb3", @digest="SHA1", @serializer=ActiveSupport::MessageEncryptor::NullSerializer>, @serializer=Marshal>
2.0.0-p481 :038 > encrypted_data = crypt.encrypt_and_sign('mike@gmail.com')
=> "UjF4VFRnRnF1RVJnZXhUUm1KakJZcDFMN1ZoZXVzSmFvLzUwdFkydXNjYz0tLTlsbFI3Vlo4RUNVK2pMZVEzS2tSOWc9PQ==--710d4fcdc202e1b1143e12661d8b40831525f158"
2.0.0-p481 :039 > decrypted_back = crypt.decrypt_and_verify(encrypted_data)
=> "mike@gmail.com"
所以,您可以使用专用表来存储加密和原始电子邮件,然后在邮件的FROM部分使用它,以及将其引用以供将来使用。因此,您必须使用Generic
电子邮件ID用户可以用来回复,然后您可以发送此加密的隐藏字段,该字段将标识要发送的电子邮件ID并再次发送到该电子邮件。
我知道这将是一个双向过程,如: -
Encrypt
发送电子邮件至部分并使用通用电子邮件,用户可在其中回复hidden field
Generic mail
,请检查hidden field
中的加密邮件,然后再次重新发送到decrypted
电子邮件。< / LI>
醇>
希望这有帮助。
答案 1 :(得分:0)
您可以与Mandrill(或其他)等交易电子邮件提供商集成。有各种mandrill rails宝石可以提供帮助。
请参阅:https://mandrill.zendesk.com/hc/en-us/articles/205583197-Inbound-Email-Processing-Overview
入站电子邮件会在以下控制器中被选中:
class InboxController < ApplicationController
include Mandrill::Rails::WebHookProcessor
def handle_inbound(event_payload)
#parse event_payload and take appropriate action
end
end
然后,您可以解析该电子邮件,让发件人针对您的用户表对其进行验证,并传递消息或其他内容。
您可能希望设置域的子域或完全独立的域,以便将正常的电子邮件流量路由到mydomain.com邮件服务器,然后选择要由rails解析的电子邮件/由webhook从邮件处理。 mydomain.com或其他什么。