SCMLife.com

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 9155|回复: 8

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

[复制链接]
发表于 2007-1-11 14:53:50 | 显示全部楼层 |阅读模式
1。action notification hook,在$mailmsg->Deliver()出错,请问是什么问题,而定制email_rule来发送邮件是正常的1 u0 j4 ]& s' @2 _: A: V1 w1 x' D
2。我想自定义邮件body,是否只能通过脚本来处理
( ~" y6 w( a2 [$ Y8 Y脚本:# }2 x$ B( a/ [( n& w+ I; P7 o
$session = $entity->GetSession();
- T. p* F; z5 o+ N: C! T2 a        $session->OutputDebugString("\ndddddddddddddddddddd");
7 H9 X/ K( s1 U/ Z" U8 ^3 \        $aa = $session->IsEmailEnabled();
  [/ ]# j% i" r. U% i" }/ \        $session->OutputDebugString("\ndddddddddddddddddddd=".$aa);
8 k. P; K0 n4 M3 j4 z0 d) V( |  |        my $mailmsg = CQMailMsg::Build();
- W; Q# B$ U1 v! e1 ?3 }$session->OutputDebugString("\n4444444444444444444444444444444");
5 j4 e/ h) C2 }        $msg_to = "ssli@longtop.com";! q9 G, s. \( C5 ~
        $mailmsg->AddTo($msg_to);
% W% P0 u. a0 ~% P6 u9 F, ^( x6 O
9 [0 m+ E$ o" r# A# s! K        $msg_subject = "Hello";
* P- q2 L8 b. K  P: F6 ?: i        $mailmsg->SetSubject($msg_subject);9 D  _. v6 V4 x" w' e1 q- w- e& Q( A
; I( w+ e- {' a: h
        $msg_body = "this is a email  for you ";1 L# S( r: x. P1 ]
        $mailmsg->SetBody($msg_body);
5 b6 ^' |3 h* c5 m2 q1 i$ a# w- c- a) d4 H; \0 }# o* T
        $mailmsg->Deliver();+ s+ A! {7 ?. [3 i" w2 S
$session->OutputDebugString("\n55555555555555555555555555555555");
: c4 Y4 F, Y+ u* x7 v4 G0 P% ]        CQMailMsg::Unbuild($mailmsg);% d$ F3 |0 A7 n: i
        $session->OutputDebugString("\ndddddddddddddddddddd33333333333333333333");
( X! a9 a' E: P
$ e. R' t; f4 Q打印的错误信息

本帖子中包含更多资源

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

x
发表于 2007-1-11 15:13:25 | 显示全部楼层
邮件发送都是通过SMTP服务来完成的,
9 I8 k% l, ]& B' }% y- v到IIS下面或Services.msc下面看看该服务是否处于关闭状态,否则打开。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-1-11 15:32:46 | 显示全部楼层
这个deliver和用定制email_rule的机制不一样吗?
6 K1 S$ U& M) T: R4 Z% F& l) M# q我用email_rule是可以成功发送的
5 _+ V# H5 N$ K7 O( V" x4 M- I而我机上并没有安装IIS; X2 M( I2 f6 G
5 o- @9 Q3 x0 I! O
换了段脚本:! N. H; o/ J5 x* m! x
use Win32::OLE;
6 M6 B- A' N+ v' n: W$msg = Win32::OLE->new('PAINET.MAILMSG') or $session->OutputDebugMessage("no mailmessage\r\n");% _1 R- t" C$ d$ a' H5 |6 Z
$session->OutputDebugMessage("why why why .............................\r\n");, f; a  T0 Q7 _$ I/ l# k( a
$userEmail = $session->GetUserEmail();
2 V5 `; J8 T. l1 M$msg->AddTo($userEmail);
3 h% ~* ~" p$ M; I2 E4 J$msg->AddFrom($userEmail);$ f& {( L- w* f. [8 V' `. p. @
$msg->SetSubject('Testing');' t. m& q2 h& H6 [
$msg->SetBody('This is the body\n you ');! \9 \( x  w, i) W) b$ M6 x
$session->OutputDebugMessage("why why why 111111111111111111111111111111111\r\n");: Q/ Y1 p1 K" l1 r* Y0 _& C
$msg->Deliver() or $session->OutputDebugMessage("Deliver failed\r\n");
" d0 N) {# {( \$session->OutputDebugMessage("why why why 22222222222222222222222222222\r\n");$ n  ?1 y* Y. ?1 E7 ~
! S  r# L6 w0 F8 {! [3 D
这下邮件发送成功了,可是dbwin32.exe仍然看到有错误信息:/ r! y. Y$ U: H, p1 \
5760: why why why .............................% I, B+ l$ S5 m3 d
5760: why why why 1111111111111111111111111111111116 `6 B4 ^8 ]  {3 [0 M5 z; X
5760: CQResourceDLL::LoadLangDLL: Trying D:\Program Files\Rational\ClearQuest\resdll\cqratmail_zh_Hans_CN.rsc9 u! _* ~. x8 H6 v
5760: CQResourceDLL::LoadLangDLL: Trying D:\Program Files\Rational\ClearQuest\resdll\cqratmail_zh_Hans.rsc
# a% r) @* `9 s1 z* T7 |+ X5760: CComClassFactory - IUnknown
( ~$ A. n/ z1 O- P5760: CComClassFactory - IClassFactory
, l8 i; b) b4 m$ Z5760: CEmailSession - IUnknown
* k5 e1 S8 H9 d; t, Z3 x4 x8 o3 s2 J9 X5760: CEmailSession - IUnknown
4 g7 Z1 l8 Z0 K1 \$ K5760: CEmailSession - IUnknown
) c; A9 e! F# m. O( p( _, F5760: CComClassFactory - IClassFactory
. S* [3 b' f% `7 z! |7 C2 Y: ^9 T5760: CEmailSession - IUnknown! G1 m. R& w$ M4 B2 ~* x
5760: CEmailSession - IUnknown. N% B# Z% v& t" s1 `; O
5760: CEmailSession - IEmailSession
# ^" U1 x8 s" s) J" a5760: CEmailSession - IUnknown
" e- O1 H  W) U$ x& m& c7 o" ^( ]5760: CEmailSession - IEmailSession
0 j9 K% }9 M9 U+ `: }: ]5760: why why why 22222222222222222222222222222
( T, h- \) ^, Z
% e+ u$ T1 o& V) E& q& B
1 d8 L  P9 Q5 w  M) |8 `- M. T$ R# d想不明白了,到底哪里有问题) N6 I  w6 B4 }8 E
8 d4 t! _! b- H* f0 I
[ 本帖最后由 happygod 于 2007-1-11 15:43 编辑 ]
回复 支持 反对

使用道具 举报

发表于 2007-1-11 15:43:19 | 显示全部楼层
我对perl了解并不多,但我看了你的代码,
3 H( E, _- T+ b9 r你能解释一下IsEmailEnabled()是做什么的吗?! e1 x, w( K% A, f6 ]
我在CQ API中从来就没有见过。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-1-11 15:50:06 | 显示全部楼层
IsEmailEnabled():Tests whether the current user has e-mail enabled or not." u- f% m2 h) W# w; d" J9 t; I4 b3 j
# v3 v& D! h7 m/ y' {! a9 _
用的是CQ7.0
回复 支持 反对

使用道具 举报

发表于 2007-1-11 16:02:23 | 显示全部楼层
我使用下列脚本,可以随便发邮件,
# C3 O2 `" i7 J2 e" [  D        strSubject = "test mail"" z. o3 F, v- R" Y8 j
        MsgBox strSubject5 E& U* H. J+ L! W
        Set mail = CreateObject("CDONTS.NewMail")
# v" k* g9 ^$ E4 p+ C" }* t          U0 A, I: i& R' b, O& }  q
        Dim strMailFrom. M: D' c. [2 Y9 j
        Dim strMailto
" G1 [/ P8 K1 w4 j% k* }  W' q2 _/ c        * A( H' F. x( x' ^5 y0 M' c
        strMailto = "aa@aa.com"& p" u/ P9 @! E) d- c
        strMailFrom = "abc@yahoo.com.cn"" k; U; `3 E1 a. T1 w
        strCc = "aa@aa.com"3 f7 Z) W- f7 a8 }& s% D( X
       
8 a; s3 L( V$ E; k. R        mail.to = strMailto
) \4 C7 {% |" o" S' k! b        mail.From = strMailFrom
; `2 M  C) S% X5 ^  w) ?        mail.Cc = strCc3 b+ d  `/ K0 `+ a
        mail.BodyFormat = 0
6 k+ r6 Y0 C8 T# Y' Q" V5 g1 ]' X        mail.MailFormat = 0
4 A! p, d9 }& a, o% \  I2 m3 _6 k9 M  ]        mail.Subject = strSubject, u0 ?3 E4 @3 Z4 a) q3 x. c
                          
( p* k  X; m7 y7 j+ y  strBody = "asdfasdfasdfasdfasfdsadf"
) V9 ~* b% H3 m' E* c- K( [5 ?  
& m2 I/ @' E1 d- t2 Z  mail.Body = strBody
% w7 p) _; Q4 I+ k4 e  mail.Send# c( Y/ ]$ m* R. r8 d
提示:可以把上述脚本放在一个.vbs文件中测试。
回复 支持 反对

使用道具 举报

发表于 2007-3-3 09:16:28 | 显示全部楼层
Set mailmsg = CreateObject("PAINET.MAILMSG")" c: c5 A/ C8 S, p3 s
  Set session = GetSession. Z4 F4 v! D! B2 Z4 g0 j8 h* M
  subj = "Tester"+ {+ H, T- o$ l* f9 [3 J" X
  mailmsg.SetSubject subj" e( q5 ~5 ~9 i9 U$ k: V  n7 H  K
  mailmsg.SetBody("test"); `# r+ m0 q9 C7 r. X
  mailmsg.SetFrom("test@test.com")
9 }: k+ v: {; z( _/ p, u  mailmsg.AddTo("test@test.com")
2 f- s" N- S% A& b6 l: z7 I  mailmsg.Deliver$ a/ I: O' P; T% z# P& w( `
+ H0 N1 L9 M7 c! T) e- M4 z! n
有这段程序在clearquest客户端发送email 成功,但在web 上发时,却速度奇慢无比,好象IE死了一样,有哪高手指点一下,谢谢!
回复 支持 反对

使用道具 举报

发表于 2013-6-8 10:34:50 | 显示全部楼层
本帖最后由 scm20008 于 2013-6-8 19:56 编辑 ( Q* X! Y+ N  Z8 M4 i5 p
$ a9 \6 n$ f( ^& p# A: M
看了下,LZ是按照API里的来写的,我也试了一下,确实不行。, C2 f# t2 B& p. p( X/ V! l+ G

( }7 t  H, R) w+ x& ~6 i$aa = $session->IsEmailEnabled();% O1 Z; E8 a' o* m% A  |- k
这个后面加个if来判断$aa的值就不会报错了。但是还是发不了邮件。
( H( y6 h4 ~& i) ^# g
$ c- v) @# T9 d: K, {9 U9 U0 e+ `4 N
回复 支持 反对

使用道具 举报

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

使用道具 举报

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

本版积分规则

关闭

SCMLife推荐上一条 /4 下一条

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

GMT+8, 2018-12-11 22:51 , Processed in 0.115012 second(s), 6 queries , Gzip On, MemCache On.

Powered by SCMLife X3.4 Licensed

© 2001-2017 JoyShare.

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