SCMLife.com

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 8931|回复: 8

[求助] action notification hook发送邮件通知deliver出错

[复制链接]
发表于 2007-1-11 14:53:50 | 显示全部楼层 |阅读模式
1。action notification hook,在$mailmsg->Deliver()出错,请问是什么问题,而定制email_rule来发送邮件是正常的8 k( P& J' |8 g3 }* C9 [, M5 c
2。我想自定义邮件body,是否只能通过脚本来处理
* C" x2 X) G' Y脚本:
; t# C  ]2 d$ p7 ]2 C/ @; B7 W$session = $entity->GetSession();5 ~$ X, A/ V% R
        $session->OutputDebugString("\ndddddddddddddddddddd");
9 v$ @8 q2 a& U- m        $aa = $session->IsEmailEnabled();4 Z, p2 z. Z! w
        $session->OutputDebugString("\ndddddddddddddddddddd=".$aa);. N/ c! o1 I/ u1 ?8 v
        my $mailmsg = CQMailMsg::Build();
7 Y8 }/ {2 P! ^5 K8 a$session->OutputDebugString("\n4444444444444444444444444444444");3 E9 k! a) K# K5 e) [9 W+ t
        $msg_to = "ssli@longtop.com";% E: ^9 Z) [1 w% x
        $mailmsg->AddTo($msg_to);
+ G: {2 _# h, m: m$ u7 R( F3 z) e# ]( p3 f/ V
        $msg_subject = "Hello";4 @2 _# a: k3 |
        $mailmsg->SetSubject($msg_subject);
! f( U" E0 e* A1 P
$ z8 ]6 _) s8 ~/ H        $msg_body = "this is a email  for you ";
: {: s) w0 Q+ N2 l        $mailmsg->SetBody($msg_body);/ |6 h8 y$ y3 N7 a# ]

# d$ m" t; i% R" X7 n5 E: p        $mailmsg->Deliver();
( q" ?! @$ p3 e; I$ P$session->OutputDebugString("\n55555555555555555555555555555555");2 G$ ?. o, c1 ~( ~+ A7 P, f1 O
        CQMailMsg::Unbuild($mailmsg);
1 H6 U# G: U: r' `        $session->OutputDebugString("\ndddddddddddddddddddd33333333333333333333");3 e* ?" X6 k) `  R* V+ W
4 w& q) \+ w, h
打印的错误信息

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
发表于 2007-1-11 15:13:25 | 显示全部楼层
邮件发送都是通过SMTP服务来完成的," y. c0 r( b/ s: B
到IIS下面或Services.msc下面看看该服务是否处于关闭状态,否则打开。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-1-11 15:32:46 | 显示全部楼层
这个deliver和用定制email_rule的机制不一样吗?
4 {- \" G; s6 B2 m* }3 b, o我用email_rule是可以成功发送的
$ C" T2 {4 w7 R  d+ F8 e: f. v: u而我机上并没有安装IIS8 l/ q" e: [) [& ^) j

0 i  ^1 w9 Q" r# u7 V换了段脚本:/ u% G1 ~0 E3 E
use Win32::OLE;
0 S! ]7 ?! B( k9 d  A% W$msg = Win32::OLE->new('PAINET.MAILMSG') or $session->OutputDebugMessage("no mailmessage\r\n");
$ L2 ^" N5 d8 t7 H: A0 ?$session->OutputDebugMessage("why why why .............................\r\n");* u7 B: [& }/ k5 c4 W$ }
$userEmail = $session->GetUserEmail();
* ^4 f5 [' ~1 B- f. R/ j$msg->AddTo($userEmail);
6 o* D9 R9 k1 S0 P$ O: X7 U) ?8 l$msg->AddFrom($userEmail);
+ y2 w8 ]5 P% L$msg->SetSubject('Testing');0 G# f5 S3 ?# A2 k
$msg->SetBody('This is the body\n you ');
" X8 i. u4 Z6 Q5 u3 j7 i$session->OutputDebugMessage("why why why 111111111111111111111111111111111\r\n");
- v- l! p$ f; f, j6 Z$msg->Deliver() or $session->OutputDebugMessage("Deliver failed\r\n");
9 |$ U8 h/ C$ ^  r# c$session->OutputDebugMessage("why why why 22222222222222222222222222222\r\n");4 X1 b2 ^0 E3 e  P( u8 ~" G
# `1 _3 o) U- Z& w" I) [/ M
这下邮件发送成功了,可是dbwin32.exe仍然看到有错误信息:) T# `2 v. r& L, N, G8 R2 J! Q
5760: why why why .............................
$ j/ b8 N5 ^8 e/ _# g5760: why why why 111111111111111111111111111111111
4 T- E# o% p3 B* c3 s& d5760: CQResourceDLL::LoadLangDLL: Trying D:\Program Files\Rational\ClearQuest\resdll\cqratmail_zh_Hans_CN.rsc) ~; c/ ]; M  ]" ]9 m
5760: CQResourceDLL::LoadLangDLL: Trying D:\Program Files\Rational\ClearQuest\resdll\cqratmail_zh_Hans.rsc& m2 t1 o# y2 T
5760: CComClassFactory - IUnknown
# @% B0 Q0 H$ h$ S3 J- J9 L5 A1 V5760: CComClassFactory - IClassFactory3 B, L$ O) X5 v5 C5 I
5760: CEmailSession - IUnknown* f. P9 d3 X. w& _# o% O
5760: CEmailSession - IUnknown/ u! E, F9 H! L4 F, b( m- R" F7 C
5760: CEmailSession - IUnknown  E7 \7 h3 `: x6 t- }8 c( F! d1 z
5760: CComClassFactory - IClassFactory
) H8 z) X7 M, C- J, ^: m7 k5760: CEmailSession - IUnknown
& f. E& f" @8 j5 u2 v( e5760: CEmailSession - IUnknown1 H: `1 e$ F' ]
5760: CEmailSession - IEmailSession
2 C& h% I4 U& G' d5760: CEmailSession - IUnknown. V% k- n1 z; F& d$ m* q
5760: CEmailSession - IEmailSession
& U4 r* ?% {: S5760: why why why 22222222222222222222222222222: J) c2 s) a, ?+ F8 K

$ Y$ Q+ d8 {2 T; o3 E1 h& o% S6 |1 p% |3 v5 w3 S  i
想不明白了,到底哪里有问题: ?" N3 d: ~9 q, I

" E; W* S' y0 u# i& [  H[ 本帖最后由 happygod 于 2007-1-11 15:43 编辑 ]
回复 支持 反对

使用道具 举报

发表于 2007-1-11 15:43:19 | 显示全部楼层
我对perl了解并不多,但我看了你的代码,; z- B6 O/ ~; {" R. s8 m
你能解释一下IsEmailEnabled()是做什么的吗?
5 _) {4 j+ l4 @+ {6 p6 ]# ~% q我在CQ API中从来就没有见过。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-1-11 15:50:06 | 显示全部楼层
IsEmailEnabled():Tests whether the current user has e-mail enabled or not.
. r* ?% y  C8 o0 l8 {7 M/ u0 c3 [4 J* x- @4 T% h/ E! s, ]. K0 ~
用的是CQ7.0
回复 支持 反对

使用道具 举报

发表于 2007-1-11 16:02:23 | 显示全部楼层
我使用下列脚本,可以随便发邮件,
; [1 @9 O( H( ?6 _* v        strSubject = "test mail"
7 _* ~+ Y( y* s# @        MsgBox strSubject
" _0 }9 n6 j5 t0 S5 m9 @2 Z) H        Set mail = CreateObject("CDONTS.NewMail")" ^* ]; S1 P9 Z1 o
       
% u: ?$ n% N; g( \. x0 J2 |$ a) E        Dim strMailFrom! |) _0 Y* N2 q4 A2 }$ F
        Dim strMailto
$ n/ p6 [7 i8 f' @; Y  f. i       
  _6 J+ ~3 n; ?, n        strMailto = "aa@aa.com"
( G7 m$ S$ G( X  _9 X! A        strMailFrom = "abc@yahoo.com.cn"' G/ |' |* b; S* b2 N7 T% d# c
        strCc = "aa@aa.com"
0 I5 X8 c* D! S3 W$ k! z        - z0 `  }# k4 {  Y3 F
        mail.to = strMailto; X& U" A) }0 ]& c1 k
        mail.From = strMailFrom
  R2 l0 `1 K: a  ^1 }# k1 z        mail.Cc = strCc% p' X* B3 B2 G3 v6 ]
        mail.BodyFormat = 06 Z9 k' [) P3 O( {8 G
        mail.MailFormat = 0; R: ?6 I- |' P4 H( _. O( S
        mail.Subject = strSubject) U* B+ J5 u1 p3 P
                          : c5 m) e6 Y6 b7 ]9 J" S: U* r
  strBody = "asdfasdfasdfasdfasfdsadf"2 B/ i. v. z# T
  7 }+ B% [) q# D7 d  _( L
  mail.Body = strBody
% X# a6 Y, S  z9 N8 H. J  mail.Send
) F! I" W! A) D0 h" Z( C/ ~提示:可以把上述脚本放在一个.vbs文件中测试。
回复 支持 反对

使用道具 举报

发表于 2007-3-3 09:16:28 | 显示全部楼层
Set mailmsg = CreateObject("PAINET.MAILMSG")/ a# o- B) \  R4 z' Y
  Set session = GetSession+ _& g+ I9 V, C# K! q
  subj = "Tester"' Y% M1 G7 u. ~- C+ ~: y
  mailmsg.SetSubject subj, o& S! D, L# p( ^. _1 v) x
  mailmsg.SetBody("test"). S' K4 D: R7 i9 W& E
  mailmsg.SetFrom("test@test.com")
) s0 s0 B8 b5 ]8 f9 r1 W  mailmsg.AddTo("test@test.com")0 [' ?, a  |4 k. {# Q
  mailmsg.Deliver' A* D" ~" m$ d1 |. n& l
; m+ N1 f+ d' |' v! F% s' V
有这段程序在clearquest客户端发送email 成功,但在web 上发时,却速度奇慢无比,好象IE死了一样,有哪高手指点一下,谢谢!
回复 支持 反对

使用道具 举报

发表于 2013-6-8 10:34:50 | 显示全部楼层
本帖最后由 scm20008 于 2013-6-8 19:56 编辑
. _7 B/ U8 @: H$ c! B4 k  K! ~3 q8 M" v4 B& }1 r
看了下,LZ是按照API里的来写的,我也试了一下,确实不行。9 e; C) a* \4 \" k# K$ D
. Y0 W. e2 v* h6 e% \
$aa = $session->IsEmailEnabled();/ i. k# U3 ]5 b- G9 }8 G' L
这个后面加个if来判断$aa的值就不会报错了。但是还是发不了邮件。
: d( [+ ~3 @. i1 g7 ?  a( [; Y6 x7 B( K/ \6 M4 b) O; I
回复 支持 反对

使用道具 举报

发表于 2016-6-23 10:02:49 | 显示全部楼层
不知道有何方法可以打印出deliver失败的具体原因,我这里有个比较奇怪的问题,有些记录hook里执行后能成功发送邮件,有些不行,我现在也没有查到具体什么原因
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

SCMLife推荐上一条 /4 下一条

QQ|小黑屋|手机版|无图版|SCMLife.com ( 京ICP备06056490号-1 )

GMT+8, 2018-9-19 23:39 , Processed in 0.064628 second(s), 6 queries , Gzip On, MemCache On.

Powered by SCMLife X3.4 Licensed

© 2001-2017 JoyShare.

快速回复 返回顶部 返回列表