হেরোকু / কৌতুক - এর সাথে লিঙ্ক করতে হোস্টটি অনুপস্থিত! দয়া করে সরবরাহ করুন: হোস্ট প্যারামিটার বা ডিফল্ট_আরল_অ্যাপশন সেট করুন [: হোস্ট]


178

আমি আমার অ্যাপটিকে হিরকুতে চাপানোর চেষ্টা করছি। আমি এখনও দেব। আমি নিশ্চিতযোগ্য মডিউলটির সাথে ছদ্মবেশ ব্যবহার করি।

আমি যখন হিরকু কনসোল দিয়ে কোনও ব্যবহারকারী যুক্ত করার চেষ্টা করি তখন আমি এই ত্রুটিটি পেয়েছি:

Missing host to link to! Please provide :host parameter or set default_url_options[:host]

পরীক্ষা এবং দেব পরিবেশে আমার নীচের লাইনটি রয়েছে:

এনভায়রনমেন্টস / ডেভেলপমেন্ট.আরবি এবং এনভায়রনমেন্টস / টেস্ট.আরবি

config.action_mailer.default_url_options = { :host => 'localhost:3000' }

আমি উত্পাদন পরিবেশে কিছু সেট আপ না।

আমি চেষ্টা করার চেষ্টা করেছি

config.action_mailer.default_url_options = { :host => 'mywebsitename.com' }
config.action_mailer.default_url_options = { :host => 'heroku.mywebsitename.com' }

কিন্তু এটি খুব কার্যকর হয় না ..

আমি ওয়েবে দেখতে পাচ্ছি যে এটি অ্যাকশনমেলার সাথে সম্পর্কিত হতে পারে তবে আমার কী কনফিগার করতে হবে তা আমি জানি না। আপনার ধারণার জন্য অনেক ধন্যবাদ!

সম্পাদিত:

ওহে,

আমি যখন হিরকুতে চাপ দিই তখন আমার অ্যাপ্লিকেশন ক্রাশ না হওয়ার জন্য আমি এটিকে আমার এনভি / টেস্ট.আরবি এবং আমার এনভি / দেব.আরবিতে রেখেছি (এনভির.আরবিতে আমি মনে করি না কারণ এটি রেল 3 অ্যাপ রয়েছে)

config.action_mailer.default_url_options = { :host => 'yourapp.heroku.com' }

তবে যখন আমি হিরকু কনসোলে একটি ব্যবহারকারী তৈরি করার চেষ্টা করেছি:

User.create(:username => "test", :email => "test@test.com", :password => "test1234", :password_confirmation => "test1234", :confirmed_at => "2010-11-03 14:11:15.520128")

আমি পেয়েছি ত্রুটি এখানে:

ActionView::Template::Error: Missing host to link to! Please provide :host parameter or set default_url_options[:host]
/home/slugs/.../mnt/.bundle/gems/ruby/1.8/gems/actionpack-3.0.0/lib/action_dispatch/routing/route_set.rb:473:in `url_for'
/home/slugs/.../mnt/.bundle/gems/ruby/1.8/gems/actionpack-3.0.0/lib/action_dispatch/routing/url_for.rb:132:in `url_for'
/home/slugs/.../mnt/.bundle/gems/ruby/1.8/gems/actionpack-3.0.0/lib/action_view/helpers/url_helper.rb:99:in `url_for'
/home/slugs/.../mnt/.bundle/gems/ruby/1.8/gems/actionpack-3.0.0/lib/action_dispatch/routing/route_set.rb:195:in `user_confirmation_url'

সম্পাদিত (2)

আমি যখন কনসোলে হিরকু লগগুলি টাইপ করি তখন আমি এটি ==> প্রোডাকশন.লগ পেয়েছি <== সুতরাং আমি মনে করি যে যখন কেউ হিরকুতে স্থাপন করে এটি ইতিমধ্যে উত্পাদনে রয়েছে।

আমি এনভ / প্রোড.আরবি এর মত কনফিগার করেছি:

config.action_mailer.default_url_options = { :host => 'yourapp.heroku.com' }

আমি এখন ব্যবহারকারী তৈরি করার চেষ্টা করার সময় এটির ত্রুটি হিসাবে রয়েছে:

Errno::EAFNOSUPPORT: Address family not supported by protocol - socket(2)
/usr/ruby1.8.7/lib/ruby/1.8/net/smtp.rb:551:in `initialize'
/usr/ruby1.8.7/lib/ruby/1.8/net/smtp.rb:551:in `open'
/usr/ruby1.8.7/lib/ruby/1.8/net/smtp.rb:551:in `do_start'
/usr/ruby1.8.7/lib/ruby/1.8/timeout.rb:62:in `timeout'

উত্তর:


243

আপনার এটিতে আপনার যুক্ত করা দরকার environment.rb

  config.action_mailer.default_url_options = { :host => 'localhost' }

নিশ্চিত হয়ে নিন যে আপনি hostআপনার প্রোডাকশন ইউআরএল এ পরিবর্তন করেছেন এবং এটিকে উন্নয়নের জন্য লোকালহোস্ট রাখুন। এটি মেলারের জন্য, এটি নিশ্চিতকরণ ইত্যাদির মতো বিজ্ঞপ্তিগুলি প্রেরণের জন্য একটি ডিফল্ট ইমেল প্রয়োজন ...


heroku logsকনসোল থেকে আপনার হিরকু সার্ভারের লগগুলি পরীক্ষা করা উচিত এবং এটি আপনাকে সঠিক ত্রুটিটি বলবে।

আপনি যখন হিরকুতে চাপ দিন আপনার নায়ক environment.rbহিরকু সাবডোমেন দিয়ে কনফিগার করতে হবে:

config.action_mailer.default_url_options = { :host => 'yourapp.heroku.com' }

সংস্করণ অনুসারে, এটি প্রবেশ করা উচিত production.rb, না environment.rb


হাই স্যাম! আমি দুঃখিত তবে আমি তা পেলাম না। আমি আমার env.rb এ কেবল কনফিগারেশন_অ্যাকশন_মাইল.আর। ডিফল্ট_উরল_প্লেশনস = {: হোস্ট => 'লোকালহোস্ট' the লাইনটি যুক্ত করেছি তবে আমার রেল 3 অ্যাপ হিরকুতে ক্র্যাশ হয়ে গেছে। আমি কি env / prod.rb এও কিছু রাখতে হয়েছিল? (দুঃখিত আমার
ইংরাজী

এছাড়াও, আমাকে কি আমার রেল অ্যাপ্লিকেশনটি প্রডাকশন মোডে রাখতে হয়েছিল? ধন্যবাদ!
benoitr

1
:host => 'yourapp.heroku.com' এটি আপনার ডোমেন হওয়া উচিত। উদাহরণস্বরূপ, যদি আপনার ডোমেনটি ইয়াহু ডট কম হয়, তবে এটি হওয়া উচিত yahoo.heroku.comবা যদি আপনি ইতিমধ্যে কাস্টম ডোমেন সেটআপ করেন তবে এটি কেবল আপনার ইউআরএল হবেyahoo.com
তারপরে ah

1
ধন্যবাদ স্যাম, আমি সমাধানটি খুঁজে পেয়েছি। আসল বিষয়টি হ'ল আমার কাছে সেন্ডগ্রিড অ্যাডন ছিল না এবং আমার এসএমটিপি কনফিগার করা হয়নি। আপনার সমস্ত ব্যাকআপের জন্য অনেক ধন্যবাদ!
benoitr

1
এটা কি ন্যায়বিচারের config.action_mailer.default_url_options = { :host => 'yourapp.herokuapp.com'বিরোধিতা হিসাবে চলবে না config.action_mailer.default_url_options = { :host => 'yourapp.heroku.com'?
মওদুলস

37

ঠিক আছে,

প্রথমে আপনাকে এই কমান্ড লাইনের সাথে সেন্ডগ্রিড রত্নটি ইনস্টল করতে হবে:

heroku addons:add sendgrid:free

তারপরে আপনাকে কেবল আপনার env / dev.rb এবং env / prod.rb এর মতো কনফিগার করতে হবে:

env / dev.rb

config.action_mailer.default_url_options = { :host => 'localhost:3000' }

env / prod.rb

config.action_mailer.default_url_options = { :host => 'yourapp.heroku.com' }

গিট এবং হিরকুতে চাপ দিন। এটি কাজ করা উচিত..


আমি এই ত্রুটিটি পেয়েছি যখন আমি কনফিগারেশন_মিলারকে প্রোডাকশন.আরবি: / অ্যাপ্লিকেশন। method_missing': undefined method অ্যাকশন_মিলার '# <রেলগুলির জন্য:: অ্যাপ্লিকেশন :: কনফিগারেশন: 0x0000000241f760> (NoMethodError)
লরান ইভান্স

আমি নিশ্চিত যে আমি এখানে সহায়তা করতে পারি না ... আপনি কি ব্লকের ভিতরে এটি উল্লেখ করেছেন? (ওয়েবসাইট :: Application.configure না ... config.action_mailer.default_url_options = {: হোস্ট => 'yourapp.heroku.com'} ... শেষ)
benoitr

6
এখন sendgrid কমান্ড heroku অ্যাডঅনস হল: অ্যাড sendgrid: স্টার্টার (এ দৃশ্য ব্যবহারের বিশদ বিবরণ devcenter.heroku.com/articles/sendgrid )
ড্যানি

23

উপরের কোডগ্লটের অ্যাঞ্জার কাজটি করে তবে আমরা কিছুটা নমনীয় কিছু চাইছিলাম, তাই আমরা এটি করেছি:

হেরোকুতে, আমরা মঞ্চায়ন ও পরীক্ষার জন্য একাধিক উত্পাদনের পরিবেশ পরিচালনা করি, সুতরাং আমাদের উত্পাদন.rb পরিবেশ ফাইলের জন্য নমনীয় সমাধান প্রয়োজন।

প্রোডাকশন.আরবি

config.action_mailer.default_url_options = { :host => ENV['MAILER_URL'] }

তারপরে আপনার অ্যাপ্লিকেশনের জন্য MAILER_URL এনভায়রনমেন্ট ভেরিয়েবল সেট করুন

heroku config:set MAILER_URL=my-awesome-app.herokuapp.com --app my-awesome-app

18

আপনার উপর চালিয়ে থাকেন সিডার :

  1. heroku addons:add sendgrid:freeআপনার কনসোল থেকে চালান ।

  2. config/environments/production.rbআপনার অ্যাপে নিম্নলিখিত লাইনগুলি যুক্ত করুন।

  ActionMailer::Base.smtp_settings = {
    :address        => 'smtp.sendgrid.net',
    :port           => '587',
    :authentication => :plain,
    :user_name      => ENV['SENDGRID_USERNAME'],
    :password       => ENV['SENDGRID_PASSWORD'],
    :domain         => 'heroku.com'
  }

  ActionMailer::Base.delivery_method = :smtp

  config.action_mailer.default_url_options = { :host => 'YOUR-DOMAIN-HERE.COM' }

13

উত্পাদন পরিবেশে এটি কাজ করার জন্য আমাকে বেশ কয়েকটি জিনিস করতে হয়েছিল : আমার production.rbফাইলের ভিতরে (/config/en वातावरणমেন্ট / প্রডাকশন.rb) আমি নিম্নলিখিতগুলি যুক্ত করেছি:

Rails.application.routes.default_url_options[:host] = 'myappsname.herokuapp.com'
config.action_mailer.delivery_method = :smtp
config.action_mailer.perform_deliveries = true
config.action_mailer.raise_delivery_errors = false
config.action_mailer.default :charset => "utf-8"

এটি রেল 4 এবং ডিভাইস 3 এর সাথে


1
এই কাঠামোর default_url_optionsকারণে একটি ত্রুটি ঘটেছে যা আমার পূর্ববর্তী সংস্থাগুলিকে ব্যর্থ করে তুলেছে, শুধু fyi। যখন আমি এটিকে আবার `= {হোস্টে পরিবর্তন করেছি: 'myappsname.herokuapp.com'}` এটি কাজ করে।
লিজ

0

এত গবেষণার পরে কাজ করা,

  1. থেকে ডিফল্ট যুক্ত করতে ভুলবেন না : আপনার অ্যাপ্লিকেশনমেলার (অ্যাপ্লিকেশন_মাইল.আরবি) হিসাবে মেল ঠিকানা ,

    class ApplicationMailer < ActionMailer::Base
      default from: 'yourmail@gmail.com'
      layout 'mailer'
    end
  2. আপনার প্রোডাকশন.আরবিতে নীচের কনফিগারেশন যুক্ত করুন ।

    config.action_mailer.default_url_options = 
      { :host => 'yourapp.herokuapp.com' }
    config.action_mailer.delivery_method = :smtp
    config.action_mailer.smtp_settings = {
      address:              'smtp.gmail.com',
      port:                 587,
      domain:               'heroku.com',
      user_name:            'yourmail@gmail.com',
      password:             'yourgmailpassword',
      authentication:       'login',
      enable_starttls_auto: true
    }
  3. ফরওয়ার্ডিং IMAP / POP ট্যাবে আপনার Gmail সেটিংস থেকে IMAP সক্ষম করুন ।

  4. কম সুরক্ষিত অ্যাপ্লিকেশনগুলিকে মঞ্জুরি দিন: https://myaccount.google.com/lesssecureapps থেকে চালু করুন

আপনি এখন যেতে ভাল। :)

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.