"पूर्ण नाम" <email@address.com> प्रारूप में होने के लिए ईमेल में "से" हेडर सेट करें


14

मैं प्रारूप में होने के लिए Drupal से भेजे गए ईमेल में हेडर से कैसे बदल सकता हूं "Fullname" <email@address.com>?

मैं अतीत में एक बिंदु पर एक Drupal 6 साइट पर ऐसा करने में कामयाब रहा, लेकिन अब मेरे पास उस साइट तक पहुंच नहीं है, और मुझे याद नहीं है कि यह कैसे करना है।

जवाबों:


17

आप hook_mail_alter()अपनी साइट से भेजे गए किसी भी ईमेल के "से" ईमेल पते को बदलने के लिए उपयोग कर सकते हैं । उपयोग किए गए ईमेल पते को RFC मानक के अनुरूप होना चाहिए, जो यह आपके प्रश्न का शीर्षक है। लेकिन उपयोगकर्ता नाम मुश्किल हो सकते हैं और इसमें अवैध चरित्र हो सकते हैं। D6 डॉक्स पर एक टिप्पणी है जो ईमेल पते को ठीक से प्रारूपित करने के लिए एक कोड नमूना प्रदान करती है । आपका कोड कुछ इस तरह दिखेगा ...

function yourmodule_mail_alter(&$message) {
  $message['from'] = $message['headers']['From'] = '"Full Name" <email@address.com>';
}

इसके अलावा, ध्यान रखें कि "से" पते को सेट करने से सभी ईमेल क्लाइंट में वांछित परिणाम नहीं हो सकते हैं ( Drupal समस्या कतार पर चर्चा देखें )। आपको अपनी आवश्यकताओं के आधार पर "प्रेषक", "त्रुटियों-से" और "उत्तर-में" सेट करने की आवश्यकता हो सकती है। वे मान $messageऊपर कोड नमूना से चर के "हेडर" में हैं।


6
धन्यवाद। भविष्य में इस उत्तर पर पहुंचने वालों के लिए, निश्चित रूप से अंतिम पैराग्राफ पर ध्यान देना चाहिए। उदाहरण के लिए, बस $ संदेश ['से'] मेरे लिए काम नहीं कर रहा था। मुझे $ संदेश ['हेडर'] ['से' 'मूल्य पर सेट करना था।
मैक्सिड

1
धन्यवाद @maxedison तुम सही हो। मैं उत्तर को संपादित कर रहा हूं और आशा करता हूं कि संशोधन को स्वीकार कर लिया जाएगा।
जिकिसियो

$ संदेश ['से]] मेरे लिए ठीक काम किया (५ साल बाद), लेकिन यह देखिए कि आप नाम के आसपास के दोहरे उद्धरणों का उपयोग करते हैं
ऑटोपोएटिक

11

यह साइट नाम को ईमेल में जोड़ने के लिए Drupal 6 से विधि है। जिस साइट का पूरा नाम आप चाहते हैं, उसके साथ बदले हुए variable_get ('site_name, Drupal')।

/**
* Implementation of hook_mail_alter().
* Here we allow the site name to be used as the senders name for outgoing email.
* see http://drupal.org/node/209672
*/
function mymodule_mail_alter(&$message){
  $default_from = variable_get('site_mail', ini_get('sendmail_from'));

  if($message['from'] == $default_from){
    $message['from'] = '"'. variable_get('site_name', 'Drupal') .'" <'. $default_from .'>';
    $message['headers']['From'] = $message['headers']['Sender'] = $message['headers']['Return-Path'] = $message['headers']['Errors-To'] = $message['headers']['Reply-To'] = $message['from'];
  }
}

हुक_मेल_अल्टर () के लिए फ़ंक्शन ड्रुपल 7 में नहीं बदला है, इसलिए इसे काम करना चाहिए।


यह मेरे लिए काम किया है Gmail & outlook। धन्यवाद :)
कालिदासन ० २१'१५ को ६:०५

3

आपको जिन सेटिंग्स को बदलना है, उनके संबंध में, यह अभी भी D7 में एक समस्या है। यदि संदेह है, तो निम्नलिखित कोड का उपयोग अपने hook_mail_alter में करें:

$message['from'] = $from;
$message['headers']['From'] = $from;
$message['headers']['Sender'] = $from;
$message['headers']['Return-Path'] = $from;
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.