Saya membuat modul sederhana yang akan mengirim email HTML kepada pengguna untuk penawaran di situs web kami.
Saya telah mencari banyak, tetapi saya tidak dapat menemukan solusi solusi yang tepat untuk Drupal. Sekarang saya dapat mengirim email tetapi teks biasa.
Apa prosedur langkah demi langkah untuk mengirim email HTML di Drupal 7?
function example_form_submit( $form,&$form_state) {
$friend_email=$form_state['values']['friend_email'];
$mailto =$friend_email; //gift to a friend
$mailfrom ='[email protected]';
$subject = "another message for HTML email from example.com";
$body="<h2 style='font-size:28px;color:red;'>Hello EMAIL, i here i want to be <b>bolded</b></h2>";
if (drupal_mail('example', 'send_gift', $mailto, language_default(),$params,$mailfrom,TRUE)) {
drupal_set_message(t('Your gift was sent successfully!!!'));
}
else {
drupal_set_message(t('<font color="red">Error occured while sending your mail!!!</font>'));
}
/****hook_mail*/
function example_mail($key,&$message,$params) {
$language = $message['language'];
switch ($key) {
case 'send_gift':
$message['subject']=t($params['subject'], $var, $language->language);
$message['body'][]=$params['body'];
$message['headers']['Content-Type'] = 'text/html; charset=UTF-8; format=flowed';
break;
}
}
Jawaban:
Seperti geoff disebutkan satu opsi adalah menggunakan modul Mime Mail, tetapi Anda juga dapat mengaktifkan modul khusus Anda untuk mengirim email HTML dengan beberapa kode tambahan. Singkatnya Anda harus mengubah
mail_system
variabel dan menulis implementasi Anda sendiriMailSystemInterface
. Contohnya adalah kode berikut.Di dalam 'mymodule.install':
Di dalam 'mymodule.module':
Anda harus mengganti instance mymodule dengan nama modul Anda yang sebenarnya kemudian menonaktifkan dan mengaktifkan kembali modul Anda untuk mengubah variabel setelah mana hal-hal yang seharusnya berfungsi. Untuk contoh lengkap, Anda dapat memeriksa jawaban saya di sini . Selain itu halaman ini di drupal.org adalah dari mana saya awalnya mendapatkan semua informasi.
sumber
Modul Mime Mail hampir pasti apa yang Anda cari.
sumber
Anda mungkin juga ingin melihat modul Swift Mailer. Ini memungkinkan Anda mengirim email HTML dengan lampiran inline dan reguler (seperti gambar atau file). Selain itu, ia juga mampu secara otomatis menghasilkan versi teks biasa berdasarkan email HTML.
Anda dapat melihatnya di http://www.drupal.org/project/swiftmailer
Sebagai catatan: Saya penulis dan pengelola modul.
sumber
Anda tidak mengirim HTML dengan benar, Anda hanya menyertakan tag H1 dan B, Anda mungkin perlu memasukkan tag HTML lengkap juga mulai dari
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
sumber
Tidak ada jawaban di atas yang berfungsi untuk saya, jadi inilah pendapat saya tentang pertanyaan awal.
Pertama-tama, instal dan aktifkan modul Mime Mail . Anda dapat membaca README.txt untuk instruksi lengkap tentang cara menggunakannya. Saya akan memberikan versi singkatnya kepada Anda.
Anda perlu mengaktifkan Mime Mail untuk modul Anda. Anda dapat melakukan ini menggunakan
hook_enable
atauhook_update_N
diexample.install
:Ketika Anda pergi ke
admin/config/system/mailsystem
Anda akan melihat bahwa entri baru telah ditambahkan untuk modul Anda:Sekarang Anda tidak perlu lagi menentukan
text/html
header, Mime Mail menangani ini. Jadi Anda tidak membutuhkan ini:Jika mau, Anda dapat menambahkan
$message['plaintext']
ke email Anda untuk alternatif non-HTML, tetapi ini tidak diperlukan.Itu dia!
sumber