SCMLife.com

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 7837|回复: 8

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

[复制链接]
发表于 2007-1-11 14:53:50 | 显示全部楼层 |阅读模式
1。action notification hook,在$mailmsg->Deliver()出错,请问是什么问题,而定制email_rule来发送邮件是正常的
% l+ J$ T0 s/ t' I' L2。我想自定义邮件body,是否只能通过脚本来处理
5 O! B; Q  B' ~. ~2 U0 T脚本:( k6 c9 `# Z3 x1 q$ L  H: j" P
$session = $entity->GetSession();
$ U  R& d( h4 _3 }. T- c- {' X1 M        $session->OutputDebugString("\ndddddddddddddddddddd");
0 ?% ]7 \' C7 U: E        $aa = $session->IsEmailEnabled();. I* n1 a) [7 a6 ~
        $session->OutputDebugString("\ndddddddddddddddddddd=".$aa);
2 H0 _* m% J- x2 C. C# G5 |        my $mailmsg = CQMailMsg::Build();/ o; M: T7 ?$ n6 u
$session->OutputDebugString("\n4444444444444444444444444444444");$ Z# V; c% J5 ?" [2 e$ ?
        $msg_to = "ssli@longtop.com";
4 x7 F6 d+ {" a0 o        $mailmsg->AddTo($msg_to);7 ]# I1 u4 W' y
1 j9 Z) V/ |: S
        $msg_subject = "Hello";4 J7 Y3 d9 _1 Y1 n, p: o
        $mailmsg->SetSubject($msg_subject);: d' B0 N" B+ F' m" ?7 `

& z+ J7 F" S0 y4 f0 M: d        $msg_body = "this is a email  for you ";$ z0 ?5 `' W( Z
        $mailmsg->SetBody($msg_body);8 E5 W8 K6 T0 m
. F9 a0 ~/ O7 ^! ?
        $mailmsg->Deliver();4 A* m; x1 W4 v5 w) e. d% ^
$session->OutputDebugString("\n55555555555555555555555555555555");
  J4 O( z5 ?! L* K5 K3 y6 |1 Y5 Z        CQMailMsg::Unbuild($mailmsg);
( U/ Y" n, `- r: C* Q7 I% u& W        $session->OutputDebugString("\ndddddddddddddddddddd33333333333333333333");3 p3 W7 C' L; u4 j! l
) q0 N$ ?0 J# c9 w- O1 V# d' ^
打印的错误信息

本帖子中包含更多资源

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

x
发表于 2007-1-11 15:13:25 | 显示全部楼层
邮件发送都是通过SMTP服务来完成的,
" U3 F! h) b8 M  I8 |  e, B到IIS下面或Services.msc下面看看该服务是否处于关闭状态,否则打开。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-1-11 15:32:46 | 显示全部楼层
这个deliver和用定制email_rule的机制不一样吗?
# I4 H2 _. ~2 Y6 z: M1 J% D我用email_rule是可以成功发送的
' e7 {+ B, f+ G5 T6 U而我机上并没有安装IIS
! r3 T2 p6 W/ `( m3 v& u7 |
8 \2 ]% k( T7 A4 _& }4 L+ s$ l/ X换了段脚本:
# }3 P; b' H; M! Luse Win32::OLE;
$ i/ F! E8 z9 _8 F5 f$msg = Win32::OLE->new('PAINET.MAILMSG') or $session->OutputDebugMessage("no mailmessage\r\n");5 F- a6 F1 f! ?1 u8 s# M: F
$session->OutputDebugMessage("why why why .............................\r\n");! C) f2 x; G# z; w
$userEmail = $session->GetUserEmail();
2 q7 g9 Z' D4 v" w$msg->AddTo($userEmail);
. p. T8 Y# F+ u. q9 y' o2 J" D$msg->AddFrom($userEmail);
0 F7 k) y/ r6 H9 r& a8 v$ Y: E$msg->SetSubject('Testing');  M" V+ I" Z5 F" E/ M+ H" A2 C
$msg->SetBody('This is the body\n you ');
5 f- \2 K; Z  l2 @$session->OutputDebugMessage("why why why 111111111111111111111111111111111\r\n");
5 L" p9 X( A" p8 s2 R! R: T7 ^$msg->Deliver() or $session->OutputDebugMessage("Deliver failed\r\n");
  u1 a! o- I4 z# [- Z5 a6 H$session->OutputDebugMessage("why why why 22222222222222222222222222222\r\n");" v' X' C+ u2 k. h
3 [, {3 Z. A8 @& K% V
这下邮件发送成功了,可是dbwin32.exe仍然看到有错误信息:
4 o+ `6 K  r) {  N; D4 ~5760: why why why .............................
! w7 T" G4 e2 X; B: f" e( {5760: why why why 1111111111111111111111111111111113 J7 P/ m2 c" R1 E; @9 {9 f1 P
5760: CQResourceDLL::LoadLangDLL: Trying D:\Program Files\Rational\ClearQuest\resdll\cqratmail_zh_Hans_CN.rsc+ `' q+ Q% v4 e4 v
5760: CQResourceDLL::LoadLangDLL: Trying D:\Program Files\Rational\ClearQuest\resdll\cqratmail_zh_Hans.rsc
; e' i0 M  a8 b' j5760: CComClassFactory - IUnknown' ?# f) \* q, U+ e7 D# L0 a4 n
5760: CComClassFactory - IClassFactory
- }" i4 C7 I. s& E1 F& g; m5760: CEmailSession - IUnknown
9 D7 X5 G8 h1 X8 u8 u: A+ Z5760: CEmailSession - IUnknown3 I( k5 v/ D& o  u* ]3 j5 }! l  v
5760: CEmailSession - IUnknown- k1 U8 E$ m3 y) ?' ^
5760: CComClassFactory - IClassFactory
. Y/ C$ k# J5 c/ [5760: CEmailSession - IUnknown, k; {9 _; _7 }, k% d3 a0 n
5760: CEmailSession - IUnknown
0 y/ W; {& [/ ?* T/ l" t5760: CEmailSession - IEmailSession3 k3 n) W, i7 N/ V( m; V
5760: CEmailSession - IUnknown0 A7 `$ P0 {0 o) ^
5760: CEmailSession - IEmailSession
, m  D* d/ s; d/ i! S$ _4 k5760: why why why 22222222222222222222222222222
# ^, M( l" B6 o# t% x5 V! A3 a1 f' V* A
# o' H2 k# \  K# h! A
想不明白了,到底哪里有问题
. Y) ?( d+ s* f
9 c4 q$ ]* F: u+ z( }0 j[ 本帖最后由 happygod 于 2007-1-11 15:43 编辑 ]
回复 支持 反对

使用道具 举报

发表于 2007-1-11 15:43:19 | 显示全部楼层
我对perl了解并不多,但我看了你的代码,# o" v/ V5 V# S9 [
你能解释一下IsEmailEnabled()是做什么的吗?7 G5 \8 c4 X- ~5 R1 p. A
我在CQ API中从来就没有见过。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-1-11 15:50:06 | 显示全部楼层
IsEmailEnabled():Tests whether the current user has e-mail enabled or not.) `, X) r! a# L8 Z; P4 y

9 W' T: Q; k; j" R3 n用的是CQ7.0
回复 支持 反对

使用道具 举报

发表于 2007-1-11 16:02:23 | 显示全部楼层
我使用下列脚本,可以随便发邮件,# w# x4 u4 x4 z# o% f6 p, Y
        strSubject = "test mail"
4 `  `  a- t4 \  I, b        MsgBox strSubject
* \9 A( K2 @6 x  E0 z        Set mail = CreateObject("CDONTS.NewMail")2 Z4 Y7 H- S  i% t
       
- M2 z  |! o- j1 s1 x& |; v* W2 d        Dim strMailFrom
1 S4 p4 ]& T( ^- k        Dim strMailto4 }  H/ o8 f8 y+ M* ?& I& t
          X9 d$ |; _9 m- A9 I
        strMailto = "aa@aa.com"/ z7 J( D/ z8 K8 u6 x8 c5 U
        strMailFrom = "abc@yahoo.com.cn". B: D: L! `/ ^8 V$ E
        strCc = "aa@aa.com"
" T. X5 q8 w. U, j% z& X        / v* O& Y0 q, ?$ M6 R( F1 O! W
        mail.to = strMailto
9 ?$ |- d0 b+ {* Z3 m: n; X4 P8 \, X        mail.From = strMailFrom7 G% f  a' D7 o6 C
        mail.Cc = strCc+ f. F$ U  e3 [9 Z
        mail.BodyFormat = 0
9 h: I" j- w# R        mail.MailFormat = 0, u4 k- n# Z* O+ ~
        mail.Subject = strSubject3 [6 \7 u7 ^* N0 V
                          
7 v) l& W9 r; \2 v0 N& b: q  strBody = "asdfasdfasdfasdfasfdsadf"& V9 [4 y) n$ z6 C
  
6 z, q; e8 l& x& @. K( m. s& f: _  mail.Body = strBody
6 }5 N; \  B( B' l  mail.Send
7 E# y8 y7 J) P提示:可以把上述脚本放在一个.vbs文件中测试。
回复 支持 反对

使用道具 举报

发表于 2007-3-3 09:16:28 | 显示全部楼层
Set mailmsg = CreateObject("PAINET.MAILMSG")1 F4 X4 m0 h. k$ @
  Set session = GetSession5 C6 Y9 w4 z+ o2 k5 e- r) |8 r
  subj = "Tester"2 g9 n, c: T# W+ ~" x
  mailmsg.SetSubject subj
& u+ g1 H0 j9 y' q" X  mailmsg.SetBody("test")( B5 Y8 z9 c/ v
  mailmsg.SetFrom("test@test.com")5 w$ G! x9 C1 g! J: T5 l6 F
  mailmsg.AddTo("test@test.com")
8 m  _2 p; Q. G  mailmsg.Deliver  ?) J% M# R2 S* e) T8 B

- H2 z2 f3 t" }& d有这段程序在clearquest客户端发送email 成功,但在web 上发时,却速度奇慢无比,好象IE死了一样,有哪高手指点一下,谢谢!
回复 支持 反对

使用道具 举报

发表于 2013-6-8 10:34:50 | 显示全部楼层
本帖最后由 scm20008 于 2013-6-8 19:56 编辑 ' _- W) o9 L$ Q8 Y1 ~1 l1 e" I

  B  F& x! w3 N% |6 A* p( |' S( `( m看了下,LZ是按照API里的来写的,我也试了一下,确实不行。) ]' m, p+ T6 D0 g+ X$ W
) `5 L) P  ]0 J. A, f4 |
$aa = $session->IsEmailEnabled();
9 e9 K  ?; ~2 ?! g这个后面加个if来判断$aa的值就不会报错了。但是还是发不了邮件。
. N( Z& W! p1 \/ Y0 X
/ i3 \. L) @) i6 y( e6 _" T: t
回复 支持 反对

使用道具 举报

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2018-1-18 09:12 , Processed in 0.067118 second(s), 6 queries , Gzip On, MemCache On.

Powered by SCMLife X3.4 Licensed

© 2001-2017 JoyShare.

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