it-swarm-id.com

Setel tajuk "dari" di email menjadi dalam format "Nama Lengkap" <[email protected]>

Bagaimana saya bisa mengubah header dari di email yang dikirim dari Drupal menjadi dalam format "Fullname" <[email protected]>?

Saya berhasil melakukannya di situs Drupal 6 pada satu titik di masa lalu, tapi saya tidak lagi memiliki akses ke situs itu, dan saya tidak ingat bagaimana melakukannya.

14
maxedison

Anda dapat menggunakan hook_mail_alter() untuk mengubah alamat email "dari" dari setiap email yang dikirim dari situs Anda. Alamat email yang digunakan harus sesuai dengan standar RFC, yang ia lakukan adalah judul pertanyaan Anda. Tetapi nama pengguna bisa rumit dan mungkin mengandung karakter ilegal. Ada komentar pada dokumen D6 yang menyediakan contoh kode untuk memformat alamat email dengan benar . Kode Anda akan terlihat seperti ...

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

Juga, perlu diingat bahwa hanya pengaturan alamat "dari" mungkin tidak memiliki hasil yang diinginkan di semua klien email (lihat diskusi tentang Drupal antrian masalah ). Anda mungkin juga perlu mengatur "pengirim", "kesalahan-ke" dan "balasan-ke" berdasarkan kebutuhan Anda. Nilai-nilai itu ada di "header" dari $message variabel dari contoh kode di atas.

17
SoftArtisans

Ini adalah metode dari Drupal 6 untuk menambahkan nama situs ke email. Ganti variabel_get ('site_name, Drupal') dengan Nama Lengkap Situs yang Anda inginkan.

/**
* 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'];
  }
}

fungsi untuk hook_mail_alter () tidak berubah dalam Drupal 7, jadi ini seharusnya berfungsi.

11
iStryker

Mengenai pengaturan yang harus Anda ubah, ini masih menjadi masalah di D7. Jika ragu, gunakan kode berikut di hook_mail_alter Anda:

$message['from'] = $from;
$message['headers']['From'] = $from;
$message['headers']['Sender'] = $from;
$message['headers']['Return-Path'] = $from;
3
Countzero