ฉันจะเปลี่ยนส่วนหัวจากในอีเมลที่ส่งจาก Drupal เป็นรูปแบบได้"Fullname" <email@address.com>
อย่างไร
ฉันจัดการที่จะทำมันบนเว็บไซต์ Drupal 6 ที่จุดหนึ่งที่ผ่านมา แต่ฉันไม่สามารถเข้าถึงเว็บไซต์นั้นอีกต่อไปและฉันจำไม่ได้ว่าจะทำอย่างไร
ฉันจะเปลี่ยนส่วนหัวจากในอีเมลที่ส่งจาก Drupal เป็นรูปแบบได้"Fullname" <email@address.com>
อย่างไร
ฉันจัดการที่จะทำมันบนเว็บไซต์ Drupal 6 ที่จุดหนึ่งที่ผ่านมา แต่ฉันไม่สามารถเข้าถึงเว็บไซต์นั้นอีกต่อไปและฉันจำไม่ได้ว่าจะทำอย่างไร
คำตอบ:
คุณสามารถใช้hook_mail_alter()
เพื่อเปลี่ยนที่อยู่อีเมล "จาก" ของอีเมลใด ๆ ที่ส่งจากเว็บไซต์ของคุณ ที่อยู่อีเมลที่ใช้ต้องเป็นไปตามมาตรฐาน RFC ซึ่งเป็นชื่อคำถามของคุณ แต่ชื่อผู้ใช้อาจมีความยุ่งยากและอาจมีอักขระที่ผิดกฎหมาย มีความคิดเห็นเกี่ยวกับเอกสาร D6 ที่ให้ตัวอย่างโค้ดสำหรับเป็นต้องจัดรูปแบบที่อยู่อีเมล รหัสของคุณจะดูเหมือน ...
function yourmodule_mail_alter(&$message) {
$message['from'] = $message['headers']['From'] = '"Full Name" <email@address.com>';
}
นอกจากนี้โปรดทราบว่าเพียงแค่การตั้งค่าที่อยู่ "จาก" อาจไม่ได้ผลลัพธ์ที่ต้องการในไคลเอนต์อีเมลทั้งหมด (ดูการอภิปรายในคิวปัญหา Drupal ) คุณอาจต้องตั้งค่า "ผู้ส่ง", "ข้อผิดพลาดเป็น" และ "ตอบกลับ" ตามความต้องการของคุณ ค่าเหล่านั้นอยู่ใน "ส่วนหัว" ของ$message
ตัวแปรจากตัวอย่างโค้ดด้านบน
นี่คือวิธีการจาก 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'];
}
}
ฟังก์ชั่นสำหรับ hook_mail_alter () ไม่ได้เปลี่ยนแปลงใน Drupal 7 ดังนั้นจึงควรใช้งานได้
Gmail & outlook
นี้จะทำงานให้ฉัน ขอบคุณ :)
เกี่ยวกับการตั้งค่าที่คุณต้องเปลี่ยนนี่ยังคงเป็นปัญหาใน D7 หากมีข้อสงสัยให้ใช้รหัสต่อไปนี้ใน hook_mail_alter ของคุณ:
$message['from'] = $from;
$message['headers']['From'] = $from;
$message['headers']['Sender'] = $from;
$message['headers']['Return-Path'] = $from;