CQ中编写的邮件HOOK不能发邮件,也不报错,为什么呢?
我在Submit-notitfication中利用OleMailMsg定义了一个邮件发送HOOK(HOOK1),用以在Defect提交后自动发送邮件到相关用户,
HOOK运行成功,能够自动发送邮件,代码如下:
# hook1:send email by OleMailMsg
use Win32::OLE
$session=$entity->GetSession();
$session->OutputDebugString("\nbegin send mail!\n");
$msg = Win32::OLE->new('PAINET.MAILMSG') or $session->OutputDebugMessage("no mailmessage\r\n");
$msg->AddTo([email=]'***@**.com'[/email]);
$msg->SetBody("This is the body");
$msg->Deliver() or $session->OutputDebugMessage("Deliver failed\r\n");
$session->OutputDebugString("\nafter send mail!\n");
由于CQ提供了OleMailMsg和CQMailMsg两个发送邮件的对象,因此我想用CQMailMsg尝试一下,代码如下(hook2):
# hook2:send mail by CQMailMsg
$session = $entity->GetSession();
$session->OutputDebugString("\nbegin send mail");
$aa = $session->IsEmailEnabled();
$session->OutputDebugString ("\nuser mail is =".$aa);
$mailmsg = CQMailMsg::Build();
$session->OutputDebugString("\nbuild");
$msg_to = "[email=**@**.com]**@**.com[/email]";
$mailmsg->AddTo($msg_to);
$msg_subject = "Hello";
$mailmsg->SetSubject($msg_subject);
$msg_body = "this is a email for you ";
$mailmsg->SetBody($msg_body);
$mailmsg->Deliver();
$session->OutputDebugString("\nend");
CQMailMsg::Unbuild($mailmsg);
结果运行后没有任何效果(提交Defect后系统没有自动发送邮件),但是设置的测试信息都正常输出了,并且也没有任何出错信息,这是为什么呢?
难道CQMailMsg的使用需要特殊的配置吗?高手们有没有碰到过这种情况?
另外,我将上面运行成功的Hook1代码放到一个test.pl文件中,用CQPerl test.pl解释执行,结果刚才在CQ中运行正常的Hook1部分现在毫无效果,也同样没有报错信息.这又是为什么呢?
本人才开始接触CQ,不知道是否是那些地方没搞懂,请各位大侠高手咄咄指点呢!
[ 本帖最后由 qiouxinyu 于 2007-8-29 14:51 编辑 ]