我正在Drupal-7中编写一个模块,它动态地向guest虚拟机发送一次性登录链接。一切都好了,直到我将链接添加到$message
数组,当它窒息时。如果我执行了dpm($message)
,则链接会出现在$message['body']
数组中,正如我所料。如果我用url()
函数注释掉这一行,一切正常。为什么php / Drupal在这个愚蠢的小链接上窒息?
/*
* Implement hook_mail().
*/
function rsvp_mail($key, &$message, $params) {
switch($key) {
case "send invite" :
$timestamp = REQUEST_TIME;
$account = $params['account'];
$message['subject'] = "And invitation for $account->name";
$message['body'][] = 'Some body text.';
$message['body'][] = 'Some more text!';
//here's the line that's breaking my brain:
$message['body'][] = url( 'http://wedding.juicywatermelon.com/rsvp/' . $account->uid . "/" . $timestamp . "/" . md5($account->pass . $timestamp) . "/" . 'user/' . $account->uid . '/edit/Wedding');
break;
}
}
ps - 我有代码在单独的函数调用中生成链接并将其移动到钩子实现以简化。然而,这对行为没有影响。
以及生成电子邮件的代码:
function rsvp_mail_send($account) {
$module = 'rsvp';
$from = "email@gmail.com";
$key = "send invite";
$params['account'] = $account;
$to = $account->mail;
$language = language_default();
$send = TRUE;
$result = drupal_mail($module, $key, $to, $language, $params, $from, $send);
}
答案 0 :(得分:2)
你需要在url()函数中添加一个名为options的额外参数,它是一个数组,在这个数组中使用键'absolute'并将其设置为TRUE以指示你作为第一个传递的URI argument是一个绝对URL。
有关详细信息,请参阅文档页面: http://api.drupal.org/api/drupal/includes--common.inc/function/url/7