2016-01-15 23 views
8

Tôi đang cố gắng tạo ứng dụng trong Rails 4.Rails 4, Devise & Mandrill email

Trong 3 năm qua, tôi đã cố gắng tìm ra kiến ​​thức/omniauth (Tôi vẫn đang cố gắng để có được nó hoạt động).

Bước sang một bên từ những vấn đề chính trong khi tôi cố gắng và tìm ra ý chí để sống qua chuyện này, tôi đã cố gắng để thiết lập với email giống phi phi.

tôi thấy hướng dẫn này, mà tôi đang cố gắng để làm theo: https://nvisium.com/blog/2014/10/08/mandrill-devise-and-mailchimp-templates/

Tôi có một bưu phẩm được gọi là mandrill_devise_mailer.rb

class MandrillDeviseMailer < Devise::Mailer 

    def confirmation_instructions(record, token, opts={}) 
    # code to be added here later 
    end 

    def reset_password_instructions(record, token, opts={}) 
    options = { 
     :subject => "Reset your password", 
     :email => record.email, 
     :global_merge_vars => [ 
     { 
      name: "password_reset_link", 
      # content: "http://www.example.com/users/password/edit?reset_password_token=#{token}" 
      content: "http://www.cr.com/users/password/edit?reset_password_token=#{token}" 

     }, 

     { 
      name: "PASSWORD_RESET_REQUEST_FROM", 
      content: record.full_name 
     } 
     ], 
     :template => "Forgot Password" 
    } 
    mandrill_send options 
    end 

    def unlock_instructions(record, token, opts={}) 
    # code to be added here later 
    end 

    def mandrill_send(opts={}) 
    message = { 
     :subject=> "#{opts[:subject]}", 
     :from_name=> "Reset Instructions", 
     # :from_email=>"[email protected]", 
     :from_email=>["PROD_WELCOME"], 
     :to=> 
      [{"name"=>"#{opts[:full_name]}", 
       "email"=>"#{opts[:email]}", 
       "type"=>"to"}], 
     :global_merge_vars => opts[:global_merge_vars] 
     } 
    sending = MANDRILL.messages.send_template opts[:template], [], message 
    rescue Mandrill::Error => e 
     Rails.logger.debug("#{e.class}: #{e.message}") 
     raise 
    end 
end 

Sự khác biệt giữa trên và những gì họ đã làm trong hướng dẫn là:

Trong email mẫu tinh tinh giống phi phi của tôi, tôi có:

<a href="*|password_reset_link|*">Change my password </a> 

Khi tôi nhận được email để thiết lập lại các hướng dẫn, tôi nhận được một liên kết được gạch dưới hình thức thay đổi mật khẩu, trong đó nói rằng 'thay đổi mật khẩu của tôi bên cạnh nó. Tôi muốn 'thay đổi mật khẩu của mình thành nhãn che giấu văn bản liên kết'.

bất cứ ai có thể nhìn thấy những gì tôi đã làm sai?

+0

bạn ': from_email' được thiết lập để' [ "PROD_WELCOME"] 'mà không trông giống như một địa chỉ email để tôi. – VNO

+0

Cảm ơn - thiết lập các ENV đã gửi email, nhưng nó in dòng chữ ở giữa * || * chứ không phải kéo trong biến – Mel

+0

Có lẽ bạn đang sử dụng tay lái như ngôn ngữ kết hợp mặc định của bạn? Đi tới Mandrill [tùy chọn gửi] của bạn (https://mandrillapp.com/settings/sending-options) trong cài đặt và kiểm tra xem bạn đã bật ngôn ngữ hợp nhất chưa. –

Trả lời

-2

Sau đây là cách tôi đã tạo DeviseMailer tùy chỉnh

class MyDeviseMailer < Devise::Mailer 
    default template_path: 'devise/mailer' # to make sure that your mailer uses the devise views 

    def reset_password_instructions(record, token, opts={}) 
    opts['from_email'] = "[email protected]" 
    opts['from_name'] = "Password Reset" 
    #Rails.logger.mail.info "reset_password_instructions #{record.to_json} \n #{token.to_json} \n #{opts.to_json}" 
    super 
    end 

end 

https://github.com/plataformatec/devise/wiki/How-To:-Use-custom-mailerAdd dynamic value in devise email subject

+0

Hi Dmitry, nó doesn ' Có vẻ như bạn đang cố gắng sử dụng mailchimp/mandrill. Dù sao cũng cảm ơn bạn. – Mel

+0

API Mandrill yêu cầu các opts ['from_email'] và chọn tham số ['from_name']. Tôi thêm lớp giao hàng tùy chỉnh mỗi http://www.alanverga.com/blog/2014/01/03/custom-rails-mailer-and-mandrill và https://robots.thoughtbot.com/how-to-send- transactional-emails-from-rails-with-mandrill –

+0

Nhưng tôi cũng có các tùy chọn đó cho tệp của tôi. Vấn đề của tôi là các liên kết không định dạng như các liên kết theo cách tôi đã thể hiện chúng.Thay vào đó, liên kết xuất hiện bên trong thẻ hiển thị, với nhãn của liên kết bên cạnh thẻ dưới dạng văn bản. – Mel

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