页面访问
请求路径 | user/control/addPrivateMessage.htm
请求方式 | GET
请求参数 | 对方用户名称 | 变量：friendUserName 类型：String 是否必填：是
返回值 | 是否允许发私信 | 变量：allowSendPrivateMessage 类型：boolean 值：true允许 false不允许
表单验证码 | 变量：formCaptcha 类型：FormCaptcha

页面访问 - AJAX方式
请求路径 | user/control/addPrivateMessage.htm
请求方式 | GET
自定义请求头 | 协议头：X-Requested-With 值：XMLHttpRequest
请求参数 | 对方用户名称 | 变量：friendUserName 类型：String 是否必填：是
请求成功返回 | JSON格式值 类型:Map<String,Object> | 键参数：allowSendPrivateMessage 值内容说明：是否允许发私信 值类型：boolean
键参数：formCaptcha 值内容说明：表单验证码 值类型：FormCaptcha

表单验证码 FormCaptcha
变量 | 类型 | 说明
--- | --- | ---
showCaptcha | boolean | 是否显示验证码 (根据'全站设置 - 基本设置 - 发表私信每分钟提交超过'参数计算是否含有值)
captchaKey | String | 验证码编号
说明 | Freemarker模板不支持直接输出布尔类型(boolean),布尔类型对象输出要使用内建函数c将布尔值转换为字符串；例如布尔类型${formCaptcha.showCaptcha}要写成${formCaptcha.showCaptcha?c}才能正确显示；比较${formCaptcha.showCaptcha?c == 'true'}

提交 添加私信 - 默认方式
请求路径 | user/control/addPrivateMessage.htm
请求方式 | POST
请求参数 | 参数表
提交成功返回 | 默认跳转到jump模板页显示提交成功信息；跳转路径参数jumpUrl有值时按参数值路径跳转
返回值 | 错误值集合 | 变量：error 类型：Map<String,String>
私信 | 变量：privateMessage 类型：PrivateMessage

提交 添加私信 - AJAX方式
请求路径 | user/control/addPrivateMessage.htm
请求方式 | POST
自定义请求头 | 协议头：X-Requested-With 值：XMLHttpRequest
请求参数 | 参数表
提交返回 | JSON格式值 类型:Map<String,Object> | 键参数：success 值内容说明：成功返回true 失败返回false 值类型：String
键参数：error 值内容说明：错误值集合 值类型：Map<String,String>
键参数：captchaKey 值内容说明：新验证码编号(当success参数返回false时并且根据'全站设置 - 基本设置 - 发表私信每分钟提交超过'参数计算是否含有值) 值类型：String

添加私信 错误值 error
变量 | 类型 | 说明
--- | --- | ---
privateMessage | String | 发送私信错误
messageContent | String | 私信内容错误
captchaValue | String | 验证码错误
token | String | 令牌错误

私信 PrivateMessage
变量 | 类型 | 说明
--- | --- | ---
friendUserName | String | 私信对方用户名称
messageContent | String | 消息内容

提交'私信'参数
参数 | 类型 | 是否必填 | 说明
--- | --- | --- | ---
friendUserName | String | 是 | 对方用户名称
messageContent | String | 是 | 消息内容
captchaKey | String | 按需填写 | 验证码编号
captchaValue | String | 按需填写 | 验证码值 同一编号验证码每分钟提交次数不能超过60次,超出时验证码图片返回空字符
token | String | 是 | 令牌
jumpUrl | String | 否 | '提交表单 - 默认方式'提交成功后跳转路径,不填写默认跳转到表单提交页；参数必须经过encodeBase64URL编码后才能提交。例${encodeBase64URL('/index')}

校验验证码
请求路径 | checkCaptcha.htm
请求方式 | GET
返回类型 | JSON
必填参数 | captchaKey : 验证码编号 captchaValue : 验证码值 同一编号验证码每分钟提交次数不能超过60次,超出时验证码图片返回空字符
提交返回 | 字符串格式值 类型:String | 值内容说明：成功返回true 失败返回false 值类型：String

## 示例

<form id="addPrivateMessageForm" name="addPrivateMessageForm" method="post" autocomplete="off" action="user/control/addPrivateMessage.htm" > <#-- 提交后跳转参数 参数必须经过encodeBase64URL编码后才能提交 不填写时默认跳转回当前页 --> <input type="hidden" id="jumpUrl" name="jumpUrl" value="${encodeBase64URL('/user/control/privateMessageChatList')}"> <textarea name="messageContent" maxlength="500" placeholder="请在这里输入内容"></textarea> <#-- 私信内容错误 --> ${(error['messageContent'])!} <#-- 验证码 --> <input type="hidden" id="captchaKey" name="captchaKey" value="${formCaptcha.captchaKey}"> <#-- 验证码值 --> <input id="captchaValue" name="captchaValue" type="text" value=""/> <#-- 验证码图片 --> <img id="captcha" src="captcha/${formCaptcha.captchaKey!}.jpg"/> <#-- 验证码错误 --> ${(error['captchaValue'])!} <#-- 获取令牌 --> <input type="hidden" id="token" name="token" value="${token!}"> <input type="submit" value="提交"> <#-- 令牌错误 --> ${error['token']} <#-- 私信错误 --> ${error['privateMessage']} </form>