Tôi đang cố gắng gửi e-mail đến người dùng theo cách thủ công bằng cách sử dụng hook hook_mail_alter. Sau đây là toàn bộ chức năng của tôi:
function custom_module_mail_alter(&$message) {
$email = '[user:name],
A site administrator at [site:name] has created an account for you. You may now log in by clicking this link or copying and pasting it to your browser:
[user:one-time-login-url]
This link can only be used once to log in and will lead you to a page where you can set your password.
After setting your password, you will be able to log in at [site:login-url] in the future using:
username: [user:name]
password: Your password
-- [site:name] team';
$account = $message['params']['account'];
$uid = $account->uid;
$_user = user_load($uid);
dpm(token_replace($email, array('user'=>$_user)));
}
Đầu ra trông như thế này:
Peter,
A site administrator at Website has created an account for you. You may now log in by clicking this link or copying and pasting it to your browser:
[user:one-time-login-url]
This link can only be used once to log in and will lead you to a page where you can set your password.
After setting your password, you will be able to log in at http://localhost/website/user in the future using:
username: Peter
password: Your password
-- Website team
Như bạn có thể thấy, những thứ như [user: name], [site: name] và [site: login-url] được xử lý đúng cách. Mã thông báo duy nhất không được xử lý là [người dùng: url đăng nhập một lần]. Có ý kiến giải thích tại sao điều này lại xảy ra không?
EDIT: Chỉ để tham khảo, mã thông báo sẽ được xử lý trong các email Chào mừng được hệ thống gửi tự động, do đó mô-đun mã thông báo đang hoạt động và hoạt động ... Nó dường như không được xử lý khi tôi gọi thủ công mã thông báo ().