ডাব্লুপিমেইল () আমাকে কেন থেকে: হেডার সেট করতে দিবে না যখন সরল পুরানো পিএইচপি মেল () দেবে?


32

আমি যখন wp_mail( $to, $subject, $message, $headers )(যথাযথ জায়গায় মান সহ) ব্যবহার করি তখন ইমেলটি এমন কোনও নাম এবং ইমেলের সাথে প্রেরণ হয়ে যায় যা আমি যে কোনও জায়গায় খুঁজে পাই না সেট করে (এমনকি পিএইচপি বা অ্যাপাচি সেটিংসেও নয়)। তবে mail( $to, $subject, $message, $headers )পরিবর্তে ব্যবহার করা ঠিক কাজ করে । এর wp_mail()কারণ হতে কি হতে পারে ?

উত্তর:


44

হাই @helenyhou:

আপনি কেবলমাত্র প্যারামিটার দিয়ে নয়, শিরোনামটি সেট করতে পারেন। ওয়ার্ডপ্রেস "হুকস" ব্যবহার করে এবং আপনার প্রয়োজনীয় হুকগুলি হুকগুলি 'wp_mail_from'এবং 'wp_mail_from_name'হুকগুলি।

ইমেল ঠিকানাটি ব্যবহার করার সময় শিরোনামটি functions.phpসংশোধন করতে আপনি আপনার থিমের ফাইলটিতে যুক্ত করতে পারেন এমন হুকগুলি এখানে রয়েছে :"From:"wp_mail()Helen Hou-Sandi <helenyhou@example.com>

add_filter('wp_mail_from','yoursite_wp_mail_from');
function yoursite_wp_mail_from($content_type) {
  return 'helenyhou@example.com';
}
add_filter('wp_mail_from_name','yoursite_wp_mail_from_name');
function yoursite_wp_mail_from_name($name) {
  return 'Helen Hou-Sandi';
}

আমি কেবল ফিল্টারগুলি দেখছিলাম এবং আপনি ঠিক বলেছেন, এটি সমস্যার সমাধান করে। আমি মনে করি কোডেক্স আপডেট করা উচিত? কোডেক্স.ওয়ার্ডপ্রেস.অর্গ / ফাংশন_রিফারেন্স / ডাব্লুপি_মেল আরও সম্পর্কিত: এটি শক্তিশালী গ্র্যাভিটি ফর্মগুলি সহ সেখানে প্রচুর ফর্ম প্লাগইনকে প্রভাবিত করে বলে মনে হচ্ছে। আমি বর্তমানে একটি কাস্টম ফর্ম লিখছি, তবে যদি ডাব্লুপি এর সাথে আচরণ করার কথা হয় তবে নিয়মিত পুরানো পদ্ধতিটি ব্যবহার করে শিরোনামগুলি কেন অন্যের (এবং এমনকি আমার কিছু সাইটগুলি) ব্যবহার করে?
হেলেন হাজারী

@ হেলেনিহু - অন্য ফর্মগুলিকে প্রভাবিত করা থেকে রক্ষা পাওয়ার জন্য আপনাকে কল করার আগে আপনার প্লাগইনে ফিল্টারগুলি যুক্ত করতে হবে wp_mail()এবং তারপরে সেগুলি সরিয়ে ফেলতে হবে। শিরোনামগুলি কেন কাজ করছে সে সম্পর্কে, আপনার অন্যান্য ব্যবহারের ক্ষেত্রে কী কী তা আমি জানি না তবে আমি যদি অবাক হয়ে থাকিwp_mail() সেভাবে কাজ করা হত।
মাইকচিন্কেল

2
আহ, আমি যা ঘটছিলাম তা খুঁজে পেয়েছি - অন্য একটি প্লাগইন এমন কিছু জন্য বিশ্বব্যাপী ফিল্টারগুলি যুক্ত করছিল যা আমি জিজ্ঞাসা করি নি এবং অপ্ট আউট করতে পারি না - খারাপ, খারাপ, খারাপ। তাই এখন নিয়মিত শিরোনামগুলি সর্বোপরি কাজ করে। এই ফিল্টারগুলি ব্যবহার করার মতো মনে হচ্ছে এটি যদি সেখানে থাকে তবে এটি সর্বোত্তম অনুশীলন হবে।
হেলেন হাজারী

এখানে কেবল একটি নোট যা কোনও প্লাগইন যুক্ত করছে তা ফিল্টার_ফিল্টার (হুক, ফাংশন) এর মাধ্যমে সরানো যেতে পারে।
জেসন কোলম্যান

এটি কেবল তখনই কার্যকর হয় যদি কোনও ইমেল ডোমেন সাইটের মতোই হয়।
ওমর

4

ঠিক আছে, আপনি যদি From: "Your Name" <youremail@example.com>\r\nনিজের শিরোনামে ফর্ম্যাটটি ব্যবহার করছেন তবে আপনার কোনও সমস্যা হবে না (যদি না আপনি প্লাগইন ইনস্টল করেন যা ডাব্লুপি_মেল ফাংশনকে ওভাররাইড করে))

তবে মাইক যেমন বলেছিলেন, আপনি সেই ফিল্টারগুলি দিয়ে চূড়ান্ত মানগুলি ফিল্টার করতে পারেন বা আপনি এই প্লাগইনটি ইনস্টল করতে পারেন:

থেকে পাঠানো

এটি আপনাকে wp_mail এ কী নাম এবং ইমেল ব্যবহার করবে তা নির্ধারণের জন্য একটি বিকল্প সেটিং দেবে।


1

একটি পুরানো প্রশ্ন পুনরুদ্ধার করতে দুঃখিত তবে এর মতো শিরোনামের মাধ্যমে সেট করা ভাল নয়:

$subject  = "MyPlugin: Alert (".get_bloginfo('wpurl').")";
$headers  = "MIME-Version: 1.0" . "\r\n";
$headers .= "Content-type: text/html; charset=".get_bloginfo('charset')."" . "\r\n";
$headers .= "From: MyPlugin <".$this->settings['from_address'].">" . "\r\n";
wp_mail($this->settings['notify_address'], $subject, $alertMessage, $headers);

এইভাবে আপনাকে কোনও ফিল্টার ব্যবহার এবং তারপরে wp_mail () পরে অপসারণের বিষয়ে চিন্তা করতে হবে না।


2
আমি ফিল্টার সেট করিনি, অন্য একটি প্লাগইন করেছে। ফিল্টারটি শিরোলেখের চেয়ে অগ্রাধিকার নেয়। এছাড়াও, আপনার সত্যিকারের site_url()পরিবর্তেget_bloginfo('wpurl')
হেলেন হাজারী

কিন্তু তারপর নিশ্চয় যে প্লাগইন খারাপ নিজেই পরে পরিষ্কার না .... না দর্শন আপনি এটি সম্পর্কে কি করতে পারেন যদিও :( সেই ক্ষেত্রে আমি ভাল ধরো যদি অন্য প্লাগইন এটি ভঙ্গ করেছে ব্যবহারের ফিল্টার আমার প্লাগইন পরিবর্তন জন্য।
ব্র্যাডি

@helenyhou - সাইট_আরল () সম্পর্কে আমাকে মনে করিয়ে দেওয়ার জন্য +1। আমি আমার প্লাগইনটি $ শিরোনাম ব্যবহার না করে ফিল্টারগুলি ব্যবহার করতেও পরিবর্তন করেছি। প্লাস আমি নিশ্চিত হয়েছি যে এই ফিল্টারগুলি আমি একবার ইমেল প্রেরণ করেছি যাতে অন্য কোনও উপায়ে না আসে :)
ব্র্যাডি

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

বর্তমান সংস্করণ হিসাবে এটি ব্যবহার করা সম্পূর্ণ গ্রহণযোগ্য get_bloginfo('wpurl'): এটি site_url()ইতিমধ্যে প্রত্যাবর্তন করে । get_bloginfo('home')এবং get_bloginfo('siteurl')হ্রাস করা হয়। ডেভেলপার.ওয়ার্ডপ্রেস.আর্গ
জেমস এম

1

এটি কিছুটা হ্যাক তবে আপনি Reply Toশিরোনাম ট্যাগটিও ব্যবহার করতে পারেন :

$headers = 'Reply-To: "Aaren A. Aarenson" <aaron@somemail.com>';

দুঃখজনকভাবে এই যোগ ইমেল ঠিকানাটি তালিকা থেকে, এবং উত্তর দেওয়ার মানে আপনি নিজে ঠিকানা কনফিগার অপসারণ করতে হবে wp_mail_fromফিল্টার।


এটি আমার জন্য এটি স্থির করে দিয়েছে। আপনি একটি জীবন সাথিকে বাঁচিয়েছেন! ;)
ব্যবহারকারী 382738

0

আমারও একই সমস্যা ছিল। আমার জন্য এটি বাইরে এসেছিল যে হোস্টিং প্রদানকারী (ব্লুহোস্ট) ফিল্ড থেকে পরিবর্তনটি প্রতিরোধ করছে। এখানে তারা এটি ব্যাখ্যা https://my.bluehost.com/cgi/help/206

সিপ্যানেল মেলবক্সগুলিতে তারা যেমন বলে ঠিক তেমন ইমেল যুক্ত করে আমি সমস্যার সমাধান করেছি।

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