পিএইচপি মেল () ফাংশন স্থানীয় উন্নয়ন মেশিনে যন্ত্রণাদায়কভাবে ধীর হয়


21

পটভূমি: আপনি যদি উন্নয়নের প্রয়োজনে স্থানীয় এপাচি সার্ভার সেট আপ করে থাকেন তবে আপনি যে সমস্যাটি প্রেরণ করতে পারবেন সেখানে ইমেল প্রেরণে দীর্ঘ সময় (কমপক্ষে এক মিনিট) সময় লাগে। এটি আপনি হ'ল যদি হ'ল হতাশাজনক is

ইন্টারনেটে বেশ কয়েকটি ফোরাম পোস্ট রয়েছে যা এই সমস্যাটি নিয়ে আলোচনা করে। যাইহোক, থিমগুলির কোনওই আমার সীমিত জ্ঞানের জন্য পর্যাপ্ত বিশদে কী করতে হবে তা বর্ণনা করেনি। আমার জন্য কাজ করা পদক্ষেপগুলি এখানে:

1) এই কমান্ডটি ব্যবহার করে আপনার হোস্টনামটি (যদি আপনি এটি ভুলে গেছেন) সন্ধান করুন:

:~$ cat /hosts/hostname

myhostname

2) ফাইলটি সম্পাদনা করুন /etc/hostsএবং নিশ্চিত করুন যে প্রথম লাইনটি নিম্নলিখিত:

127.0.0.1 localhost.localdomain localhost myhostname

3) সেন্ডমেল কনফিগারেশন ফাইল ( /etc/mail/sendmail.cfউবুন্টু) এবং সম্পাদনা করুন লাইন Uncomment#O HostsFile=/etc/hosts

4) কম্পিউটার পুনরায় চালু করুন। কম্পিউটারটি এখনই আরও দ্রুত বুটআপ হওয়া উচিত এবং মেল () ফাংশনটি প্রায় সঙ্গে সঙ্গে ফিরে আসবে। তবুও, আপনি পদক্ষেপ 5 অনুসরণ না করে ইমেলগুলি আসলে পাঠানো হবে না।

৫) আপনাকে অবশ্যই মেল ফাংশনটি ব্যবহার করার সময় সেন্ডমেইল '-f' বিকল্পটি ব্যবহার করতে হবে। উদাহরণ স্বরূপ:

mail('recipient@somewhere.com', 'the subject', 'the message', null, '-fsender@somewhere.com');

আমার সহকর্মী সার্ভারফেলারদের জন্য আমার প্রশ্নটি হ'ল:

আর কী কী পরিবর্তন করা যেতে পারে যাতে আমাকে সেন্ডমেল -f বিকল্পটি ব্যবহার না করতে হয়? যদিও -f বিকল্পটি যুক্ত করা খুব কঠিন নয়, আপনার সিএমএস (যেমন দ্রুপাল) মেল প্রেরণের সময় -f বিকল্পটি ব্যবহার না করে এটি একটি সমস্যা is এই বিকল্পটি যুক্ত করতে আপনার একটি মূল মডিউল হ্যাক করতে হবে।


1
আমার উবুন্টু সিস্টেমে কমান্ডcat /etc/hostname
zkent

উত্তর:


6

আমি জানি যে আপনি যা জিজ্ঞাসা করছেন এটি এটি নয়, তবে আপনি কেন পোস্টফিক্স বা এক্সিম চেষ্টা করেন না? এগুলি উভয়ই উবুন্টুতে উপলব্ধ (পোস্টফিক্স এমনকি উবুন্টু সিস্টেমে ডিফল্ট এমটিএ) এবং তারা উভয়ই একটি সামঞ্জস্যপূর্ণ 'সেন্ডমেল' কমান্ড সরবরাহ করে যা খুব ভালভাবে কাজ করে। আইএমএইচও সেন্ডমেল এক প্রকার তারিখের এবং আপনি আরও আধুনিক এমটিএর সাহায্যের আরও ভাল সম্ভাবনা পাবেন।


এমনকি যদি সেন্ডমেলের চেয়ে আরও ভাল মেল সিস্টেম থাকে তবে সমস্যাটি এমন একটি ডেভলপমেন্ট সার্ভারকে প্রধান করে যা প্রযোজনা সার্ভারটি আয়না করে। সেন্ডমেল পিএইচপি জন্য ডিফল্ট মেল এজেন্ট।
মাইকেল বি

1
আপনি সফটওয়্যারটি সেন্ডমেল বা বাইনারি প্রেরণ করবেন? কারণ এক্সিম এবং পোস্টফিক্সেরও sendmailবাইনারি রয়েছে যা সামঞ্জস্যতার বিষয়ে, মূল সেন্ডমেলের মতো একই বিকল্পগুলি গ্রহণ করে।
coredump

আমি অতীতের অভিজ্ঞতা থেকে এক্সিমের খুব বেশি অনুরাগী নই, তবে পোস্টফিক্সটি দিয়েছি এবং ডাব্লু / ই সমস্যার সমাধান হ'ল ডাব্লু / সেন্ডমেল তাত্ক্ষণিক!
কুইকশিফ্টিন

2

এটি আমার পক্ষে কাজ করেছে:

  • পোস্টফিক্স ইনস্টল করুন

এটি কীভাবে করবেন সে সম্পর্কে এখানে নির্দেশাবলী দেখুন: https://help.ubuntu.com/commune/Postfix (এটি ইতিমধ্যে ইনস্টল করা হতে পারে, এবং 'সেন্ডমেল' বাইনারি প্রকৃতপক্ষে পোস্টফিক্সের জন্য একটি নাম হতে পারে)

  • এখানে নির্দেশাবলী অনুসরণ করুন:

http://lenss.nl/2009/01/making-php-mail-work-on-ubuntu-through-postfix/

mkfifo /var/spool/postfix/public/pickup

এই sendmailপ্রক্রিয়া

ps aux | grep mail

এটাকে হত্যা কর

kill <thepid>

আবার শুরু postfix

/etc/init.d/postfix restart

আমি মনে করি আপনি কেবলমাত্র 'মরিরিগিন' প্যারামিটারটিকে কোনও সক্রিয় ডোমেন নাম যেমন আপনার নিজের ডোমেন নাম হিসাবে সেট করতে পারেন।


পারফেক্ট! এটি কি আমাকে প্রায় দুই ঘন্টা ধরে জর্জরিত করেছিল? =)
হ্যানস স্নাইডারমায়ার

1

এটি mail.force_extra_parameters = "-fsender@somewhere.com"আপনার জন্য সমাধান হতে পারে বা নাও হতে পারে: আপনার php.ini ফাইলটিতে যুক্ত করুন। এটি পিএইচপি স্বয়ংক্রিয়ভাবে পিএইচপি-র মেইল ​​() ফাংশনের পঞ্চম প্যারামিটার হিসাবে -fsender@somewhere.com যোগ করে makes

এটি একটি হার্ডকোডযুক্ত মান এবং কেবলমাত্র php.ini এ প্রযোজ্য তাই এটি খুব নমনীয় হবে না, তবে সম্ভবত আপনার বিকাশের ক্ষেত্রে এটি আপনার পক্ষে কাজ করে?


0

নেটওয়ার্ক ট্র্যাফিক দেখে (ভাবেন tcpdump) বা straceআপনার সেন্ডমেল বা অ্যাপাচি প্রক্রিয়াগুলি চালিয়ে আপনি কেন এই বিলম্ব হচ্ছেন তা সম্পর্কে ধারণা পেতে সক্ষম হওয়া উচিত যাতে আপনি মূল সমস্যাটি সমাধান করতে পারেন।

সাধারণত এই ব্যাপ্তিতে বিলম্ব হ'ল ডিএনএস লুকআপগুলিতে ব্যর্থ হওয়ার কারণে, তবে আপনি যতক্ষণ না তাকান ততক্ষণ আপনি জানতে পারবেন না। আপনি যদি অন্তর্নিহিত সমস্যাটি সমাধান না করেন তবে আপনি যত চেষ্টা করবেন না কেন এটি সমস্যা হিসাবে শেষ হবে issue


1
বিলম্ব হ'ল হোস্টনেম এফকিউডিএন (সম্পূর্ণরূপে যোগ্য ডোমেন নাম) এর পরিবর্তে একক শব্দ হওয়ার কারণে ঘটছিল। সেন্ডমেলকে / ইত্যাদি / হোস্টগুলিতে ইশারা করে এবং লোকালহোস্ট.ডোমেনকে প্রথম ডোমেন নাম হিসাবে (যা একটি এফকিউডিএন হয়) কোনও বিলম্ব হয় না। এটি 1-4 পদক্ষেপে স্থির হয়েছিল। বাকী ইস্যুতে '-f' ব্যবহার করতে হচ্ছে - মেল পাঠাতে 2 মিনিট অপেক্ষা করতে এখনও একটি বড় উন্নতি।
মাইকেল বি

0

আমি পিএইচপি-তে মেল () ব্যবহার করে কোনও সমস্যা পাইনি যা এমটিএ-তে কোনও সমস্যার ফলস্বরূপ নয়।

আপনার php.ini ফাইলটিতে এটি ইমেল প্রেরণের জন্য কোন আদেশটি চালিত হবে তা দেখিয়ে দেবে (ডিফল্ট: "সেন্ডমেল -t -i")। এটি ব্যবহার করে কমান্ড লাইন থেকে একটি ইমেল প্রেরণের চেষ্টা করুন - আমি এটির ধীরে ধীরে বাজি ধরব।

ডিএনএস সার্ভারটি মেশিনে সঠিকভাবে কনফিগার করা হয়েছে কিনা (এবং এমটিএতে কনফিগার করা সমস্ত ঠিকানা সমাধান করতে পারে) তা যাচাই করার জন্য সাধারণ জিনিসগুলি হ'ল এবং যদি কোনও স্মার্ট রিলে কনফিগার করা থাকে তবে সিস্টেমটি সংযোগ করতে পারে এমন কোনও ঠিকানায় নামটি সমাধানযোগ্য।

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