2015-06-10 3 views
0

В моем webapp у меня есть экземпляры, где я хочу, чтобы пользователи отправляли электронное письмо своему местному представителю. Но я не хочу раскрывать электронную почту этого пользователя, поэтому я бы хотел, чтобы письмо было отправлено с [email protected], где a_user_name отличается в зависимости от того, кто его отправляет.Посылать электронные письма всем [email protected] и выполнять код

Где я потерял, как обращаться с ситуацией, когда кто-то отвечает на это письмо, и мне нужно доставить его оригинальному автору. Я хотел бы уловить эту электронную почту, найти пользователя в нашей базе данных и отправить им электронное письмо с уведомлением об ответе. Как заполнить эту последнюю часть?

Использование Rails + Amazon SES

Спасибо!

+0

Одна вещь, которую я не получил, - это пользователь 'deep @ buycott.com отправляет электронное письмо местному представителю, по какому адресу электронной почты он отправит электронное письмо, например, по электронной почте представителя местного представителя 'd_nice @ buycott.com'? – Deep

+0

Большой вопрос для меня: что происходит, когда два пользователя отправляют электронные письма тому же представителю? Как вы определяете, к какому пользователю отвечает представитель? Не в коде, на словах. –

+0

имя пользователя уникально для объекта User, поэтому я хотел бы посмотреть имя пользователя в базе данных и подключить его к правильному пользователю. Мой вопрос был более похожим на то, как настроить сервер, который ловит все письма на [email protected], и позволяет мне обрабатывать, что делать дальше в коде? –

ответ

0

Вы можете интегрироваться с поставщиком транзакций электронной почты, таким как Mandrill (или другие). Для этого нужны различные рифленые рельсы.

См: 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 и получать электронные письма, которые обрабатываются рельсами/обрабатываются веб-записью по почте .mydomain.com или что-то еще.

0

вы можете использовать Base64.encode64

2.0.0-p481 :029 > encrypted_email=Base64.encode64('[email protected]') 
=> "bWlrZUBnbWFpbC5jb20=\n" 
2.0.0-p481 :030 > Base64.decode64(encrypted_email) 
=> "[email protected]" 

ИЛИ MessageEncryptor

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('[email protected]') 
=> "UjF4VFRnRnF1RVJnZXhUUm1KakJZcDFMN1ZoZXVzSmFvLzUwdFkydXNjYz0tLTlsbFI3Vlo4RUNVK2pMZVEzS2tSOWc9PQ==--710d4fcdc202e1b1143e12661d8b40831525f158" 
2.0.0-p481 :039 > decrypted_back = crypt.decrypt_and_verify(encrypted_data) 
=> "[email protected]" 

So.you может использовать специальную таблицу для хранения зашифрованных и оригинальных электронных писем, а затем использовать его в раздел FROM почты как а также ссылаться на него для использования в будущем. Поэтому вы должны использовать идентификатор электронной почты Generic, который пользователи могут использовать для ответа, и затем вы можете отправить это зашифрованное скрытое поле, которое будет определять, какой идентификатор электронной почты предназначался для отправки и снова отправить на адрес Айыл.

я знаю, что это будет двусторонний процесс, как: -

  1. Encrypt электронной почты в С части и использовать Generic электронной, где пользователи могут ответить назад
  2. Используйте hidden field содержащий зашифрованы почта
  3. Итак, если пользователь отвечает на вопрос Generic mail, проверьте зашифрованную почту от hidden field, а затем снова resend it to адрес электронной почты decrypted.

НАДЕЖДА ЭТО ПОМОЩЬ.

+0

Если вам действительно нужна конфиденциальность, вы не можете просто кодировать/декодировать в b64, потому что любой может это сделать. –

 Смежные вопросы

  • Нет связанных вопросов^_^