【问题标题】:Why isn't the body of my message being sent in drupal_mail()?为什么我的邮件正文没有在 drupal_mail() 中发送?
【发布时间】:2017-04-07 14:18:54
【问题描述】:

我是一个非常新的 drupal 表单,但我设法设置了一个 drupal_mail 函数,该函数在提交时会使用正确的 $subject 消息和 $from 电子邮件地址向所需位置发送一封电子邮件。但是,它不是发送消息的正文。我用谷歌搜索/尝试了很多东西,但似乎没有什么能抓住正确的价值。有人能看出为什么吗?提前感谢您的帮助。

function drupalform_menu() {
$items['drupalform/form1'] = array(
    'type' => MENU_CALLBACK,
    'access arguments' => array('access content'),
    'page callback' => 'drupal_get_form',
    'page arguments'=>array('drupalform_form1'));

  return $items;
} ?>


<?php function drupalform_form1() {
$form = array(
    '#prefix' => '<div id="contact-form" class="row section"><div 
class="container">',
    '#suffix' => '</div></div>',
); ?>


   <?php $form['name']=array(
    '#prefix' => '<div class="col l5 s12">',
    '#type'=>'textfield',
    '#title'=>t('FIRST & LAST NAME'),
  ); ?>

<?php $form['email']=array(
    '#suffix' => '</div>',
    '#type'=>'textfield',
    '#title'=>t('EMAIL'),
  ); ?>

 <?php $form['message']=array(
    '#prefix' => '<div id="form-message" class="col l5 push-l1 s12 ">',
    '#type'=>'textarea',
    '#title'=>t('MESSAGE'),
  ); ?>

<?php $form['submit']=array(
    '#suffix' => '</div>',
    '#type'=>'submit',
    '#value'=>t('SEND MESSAGE')
  );

  return $form; ?>


<?php } ?>


<?php

function drupalform_form1_submit($form, $form_state) {
$to = "test@test.com";
$from = "sender@sender.com";
$subject = "New message from the Louisville Digital Inclusion Site";
$body = $form_state['values']['message'];


$params = array(
    'subject' => $subject,
    'body' => $body,
    );

drupal_mail('test', 'information', $to, language_default(), $params, $from);

drupal_set_message("Form has been submitted");
}


function test_mail($key, &$message, $params) {
switch ($key) {
case 'information':
  $message['subject'] = $params['subject'];
  $message['body'] = $params['body'];
break;
}
}

?>

【问题讨论】:

    标签: php drupal-7 drupal-modules drupal-forms


    【解决方案1】:

    想通了!我不得不将我的 test_mail 函数更改为如下所示:

    function test_mail($key, &$message, $params) {
    switch ($key) {
    case 'information':
    $message['subject'] = $params['subject'];
    $message['body'][] = $params['body'];
    break;
    }
    }
    

    我需要在$message['body'][] = $params['body'] 之后添加空括号。

    【讨论】:

      猜你喜欢
      • 2020-01-17
      • 2015-03-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-02-18
      • 2021-09-22
      • 1970-01-01
      • 2014-01-08
      相关资源
      最近更新 更多