এটি মূ question় প্রশ্ন হতে পারে তবে আমি যখন কারাগুলিতে এইচটিএমএল ইমেল একসাথে রাখছি তখন ব্রাউজারে টেমপ্লেটটির পূর্বরূপ দেখার জন্য বিশেষভাবে অন্তর্নিহিত কোনও উপায় আছে বা আমার কী ধরণের কাস্টম নিয়ামক লিখতে হবে যা এটি টানবে? তার মতামত হিসাবে?
এটি মূ question় প্রশ্ন হতে পারে তবে আমি যখন কারাগুলিতে এইচটিএমএল ইমেল একসাথে রাখছি তখন ব্রাউজারে টেমপ্লেটটির পূর্বরূপ দেখার জন্য বিশেষভাবে অন্তর্নিহিত কোনও উপায় আছে বা আমার কী ধরণের কাস্টম নিয়ামক লিখতে হবে যা এটি টানবে? তার মতামত হিসাবে?
উত্তর:
অ্যাকশন মেইলারের এখন রেল ৪.১ এ ইমেলগুলির পূর্বরূপ দেখার ক্ষেত্রে একটি বিল্ট রয়েছে । উদাহরণস্বরূপ, এটি পরীক্ষা করে দেখুন:
# located in test/mailers/previews/notifier_mailer_preview.rb
class NotifierPreview < ActionMailer::Preview
# Accessible from http://localhost:3000/rails/mailers/notifier/welcome
def welcome
Notifier.welcome(User.first)
end
end
spec/mailers/previews
ড্যানিয়েলের উত্তরটি একটি ভাল শুরু, তবে যদি আপনার ইমেল টেমপ্লেটগুলিতে কোনও গতিশীল ডেটা থাকে তবে এটি কার্যকর হবে না। যেমন ধরুন আপনার ইমেলটি অর্ডার রসিদ এবং এর মধ্যে আপনি মুদ্রণ করেছেন @order.total_price
- পূর্ববর্তী পদ্ধতিটি ব্যবহার করে @order
চলকটি শূন্য হবে।
এখানে আমি ব্যবহার করি একটি ছোট রেসিপি:
প্রথমত, যেহেতু এই ইমেল প্রাকদর্শন কার্যকারিতাটি কেবলমাত্র অভ্যন্তরীণ ব্যবহারের জন্য, তাই আমি প্রশাসকের নেমস্পেসে কিছু জেনেরিক রুট সেট আপ করেছি:
#routes.rb
MySite::Application.routes.draw do
namespace :admin do
match 'mailer(/:action(/:id(.:format)))' => 'mailer#:action'
end
end
এরপরে, আমি কন্ট্রোলার তৈরি করি। এই নিয়ামকটিতে, আমি প্রতি ইমেল টেমপ্লেটগুলিতে একটি পদ্ধতি তৈরি করি। যেহেতু বেশিরভাগ ইমেলগুলিতে ডায়নামিক ডেটা থাকে তাই আমাদের সদস্য যে পরিবর্তনশীল টেমপ্লেটটি প্রত্যাশা করে তা তৈরি করা দরকার।
এটি ফিক্সচারগুলির সাহায্যে করা যেতে পারে তবে আমি সাধারণত কিছু ছদ্ম-এলোমেলো বাস্তব ডেটা গ্রহণ করতে পছন্দ করি। মনে রাখবেন - এটি কোনও ইউনিট পরীক্ষা নয় - এটি নিখুঁতভাবে একটি উন্নয়ন সহায়তা। এটি প্রতি একক সময় একই ফলাফল উত্পাদন করার প্রয়োজন হয় না - আসলে - এটি না হলে সম্ভবত এটি আরও ভাল!
#app/controllers/admin/mailer_controller.rb
class Admin::MailerController < Admin::ApplicationController
def preview_welcome()
@user = User.last
render :file => 'mailer/welcome.html.erb', :layout => 'mailer'
end
end
নোট করুন যে আমরা যখন টেম্পলেটটি রেন্ডার করি তখন আমরা ব্যবহার করি layout=>:mailer
। এটি আপনার আদর্শ ওয়েব অ্যাপ্লিকেশন বিন্যাসের (উদাহরণস্বরূপ application.html.erb
) অভ্যন্তরের পরিবর্তে তৈরি হওয়া HTML ইমেল লেআউটের অভ্যন্তরে আপনার ইমেলের মূল অংশ এম্বেড করে ।
এবং thats প্রায় কাছাকাছি এটি. এখন আমি আমার স্বাগত ইমেল টেমপ্লেটে পরিবর্তনের প্রাকদর্শন করতে http://example.com/admin/mailer/preview_welcome দেখতে যেতে পারি।
get 'mailer...
পরিবর্তে এখনই হওয়া উচিত match
।
37 সিগন্যালের নিজস্ব মেইল পরীক্ষার মণিও রয়েছে যা মেল_ভিউ বলে । এটা বেশ চমত্কার।
আমি দেখেছি সবচেয়ে সহজ সেটআপ হ'ল মেলগ্যাচার । সেটআপটি 2 মিনিট সময় নিয়েছে এবং এটি বক্সের বাইরে নতুন মেলারের পক্ষে কাজ করে।
আমি ইমেল_প্রিভিউ ব্যবহার করি । একবার চেষ্টা করে দেখো.
আমি সম্প্রতি ব্রাউজারের মাধ্যমে অ্যাপ্লিকেশন ইমেলগুলির পূর্বরূপ, সম্পাদনা (টেমপ্লেট ফাইল) সরবরাহ করতে এবং মাইলি নামে একটি রত্ন লিখেছি । এটি ডেটা হুক করার একটি বন্ধুত্বপূর্ণ উপায়, একটি নমনীয় অনুমোদন সিস্টেম এবং একটি ন্যূনতম লিখিত UI সরবরাহ করে।
আমি অদূর ভবিষ্যতে নতুন বৈশিষ্ট্য যুক্ত করার পরিকল্পনা করেছি, যেমন:
আমি আশা করি এটি আপনাকে সহায়তা করতে পারে।
আপনি রেল ইমেল পূর্বরূপ ব্যবহার করতে পারেন
REP একটি প্রাকদর্শন এবং পরীক্ষা পাঠাতে ইমেল ইঞ্জিন পাগল, i18n সমর্থন, সহজ premailer ইন্টিগ্রেশন, এবং ঐচ্ছিক, CMS সাথে একসঙ্গে সম্পাদন সাথে আছেন comfortable_mexican_sofa ।
rails
আপনি যদি ব্যবহার করেন তবে একটি মেল পূর্বরূপ উত্পন্ন করে rails g mailer CustomMailer
। আপনি ফোল্ডারের CustomMailerPreview
ভিতরে একটি ফাইল পাবেন spec/mailers/previews
।
এখানে আপনি আপনার পদ্ধতিটি লিখতে পারেন যা মেলাকে কল করবে এবং এটি একটি পূর্বরূপ তৈরি করবে।
প্রাক্তন জন্য -
class CustomMailerPreview < ActionMailer::Preview
def contact_us_mail_preview
CustomMailer.my_mail(user: User.first)
end
end
সমস্ত ইমেলগুলি HTTP: // লোকালহোস্ট: 3000 / রেল / মেলার / কাস্টম_মেলারে পূর্বরূপ দেখুন
config.action_mailer.preview_path = "#{Rails.root}/spec/mailers/previews"
রেলগুলি ইমেল পূর্বরূপ আমাদের দ্রুত ওয়েব ব্রাউজারে ইমেলটি বিকাশ মোডে দেখতে সহায়তা করে।
1) “gem ‘rails_email_preview’, ‘~> 0.2.29’ “
জহরত ফাইল যোগ করুন এবং বান্ডিল ইনস্টল।
2) “rails g rails_email_preview:install”
এটি কনফিগার ফোল্ডারে আরম্ভের রুটগুলিতে আরম্ভকারী তৈরি করে চালান ।
3) “rails g rails_email_preview:update_previews”
অ্যাপ ডিরেক্টরিতে এই ক্রেটগুলি মাইলার_প্রিভিউ ফোল্ডারটি চালান ।
জেনারেটর আপনার ইমেলগুলির প্রতিটিতে একটি স্টাব যুক্ত করবে, তারপরে আপনি মক ডেটার সাহায্যে স্টাবকে তৈরি করুন।
উদা:
class UserMailerPreview
def invitation
UserMailer.invitation mock_user(‘Alice’), mock_user(‘Bob’)
end
def welcome
UserMailer.welcome mock_user
end
private
def mock_user(name = ‘Bill Gates’)
fake_id User.new(name: name, email: “user#{rand 100}@test.com”)
end
def fake_id(obj)
obj.define_singleton_method(:id) { 123 + rand(100) }
obj
end
end
৪) অনুসন্ধান ক্যোয়ারীর প্যারামিটারগুলি ক্লাসের পূর্বরূপের জন্য উদাহরণ পরিবর্তনযোগ্য হিসাবে উপলভ্য হবে। উদাহরণস্বরূপ: আমাদের মতো ইউআরএল থাকলে
এটির “/emails/user_mailer_preview-welcome?user_id=1”
@user_id
স্বাগত পদ্ধতিতে সংজ্ঞায়িত করা হয় তবে UserMailerPreview
এটি আমাদের নির্দিষ্ট ব্যবহারকারীর কাছে মেল প্রেরণে সহায়তা করে।
class UserMailerPreview
def welcome
user = @user_id ? User.find(@user_id) : mock_user
UserMailer.welcome(user)
end
end
5) আরইপি ইউআরএল এর মত অ্যাক্সেস করতে
rails_email_preview.rep_root_url
rails_email_preview.rep_emails_url
rails_email_preview.rep_email_url(‘user_mailer-welcome’)
)) আমরা আরইপি এর মাধ্যমে ইমেল প্রেরণ করতে পারি, এটি পরিবেশ মেলারের সেটিংস ব্যবহার করবে। পরীক্ষার পরিবেশে মেইল প্রেরণ নিষ্ক্রিয় করার জন্য এই লাইনটি আরম্ভকারীটিতে মন্তব্য করুন।
config.enable_send_email = false
উত্স: রেলকর্মা ব্লগ : মেল_ভিউ রত্নের সাহায্যে রেল অ্যাপ্লিকেশনগুলিতে ইমেলগুলির পূর্বরূপ
আমি অবাক হয়েছি কারও উল্লিখিত চিঠি_পেনার নেই । এটি এমন এক মণি যা যখন কোনও ইমেল ডেভেল হয়ে যায় তখন ব্রাউজার পৃষ্ঠা হিসাবে ইমেলগুলি রেন্ডার করে এবং খুলবে।
এটিকে সরাসরি মেলারের বাইরে প্রাকদর্শন করার কোনও উপায় নেই। তবে আপনি যেমন লিখেছেন, আপনি একটি কন্ট্রোলারও লিখতে পারেন যা দেখতে এরকম কিছু দেখাচ্ছে।
class EmailPreviewsControllers < ActionController::Base
def show
render "#{params[:mailer]}_mailer/#{params[:method]}"
end
end
তবে আমি মনে করি, ইমেলগুলি সঠিকভাবে দেখলে এটি পরীক্ষা করার সর্বোত্তম উপায় নয়।
render "#{params[:mailer]}_mailer/#{params[:method]}", :layout => 'mailer'
আপনি নিজের অ্যাপ্লিকেশানের জন্য তৈরি HTML ইমেল বিন্যাসের অভ্যন্তরে ইমেলের মূল অংশ এম্বেড করবেন।
আমি মেইল_ ভিউয়ার রত্ন পছন্দ করি । এই মণিটি বেশ কার্যকর কারণ এটি এইচটিএমএল টেমপ্লেটটি টিএমপি ফোল্ডারে সংরক্ষণ করে।