使用CDO和powerbuilder返回收据错误

时间:2016-05-26 15:40:09

标签: email powerbuilder

我在请求递送通知时遇到问题。我希望仅在消息失败时获取传递状态,所以我设置:lole_Msg.DSNOptions = doDSNFailure但我收到邮件无论如何。这有点令人讨厌,因为我每天发送超过90封电子邮件,我收到90份回复收据,如果邮件失败,我只想要返回收据。

    //w
/****
FUNCION: gf_envia_mail(arg_destinatario,arg_asunto,arg_texto,arg_adjuntos)
RETORNA: NADA
PARAMETROS

:
                    STRING: ARG_DESTINATARIO
                    STRING: ARG_ASUNTO
                    STRING: ARG_TEXTO
                    STRING: ARG_ADJUNTOS
DESCRIPCION: Recibe por parametro destinatario, asunto, cuerpo y adjuntos y envia un mail mediante un objeto ole.
****/

oleobject lole_Msg,lole_Conf
string ls_cadena_total, ls_cadena 
long ll_i, ll_len 
integer li_nro 
string ls_strHTML
//'Delivery Status Notifications
Constant integer cdoDSNDefault = 0 //'None
Constant integer cdoDSNNever = 1 //'None
Constant integer cdoDSNFailure = 2 //'Failure
Constant integer cdoDSNSuccess = 4 //'Success
Constant integer cdoDSNDelay = 8 //'Delay
Constant integer cdoDSNSuccessFailOrDelay = 14 //'Success, failure or delay

lole_Msg=create oleobject

 if lole_Msg.ConnectToNewObject("CDO.Message")<0 then
     messagebox('OBI','CDO.Message')
     destroy lole_msg
     return
 end if

 lole_Conf=create oleobject

 if lole_Conf.ConnectToNewObject("CDO.Configuration")<0 then
     messagebox('OBI','CDO.Configuration')
     destroy lole_msg
     destroy lole_Conf
     return
 end if

 lole_Conf.Fields.Item("http://schemas.microsoft.com/cdo/configuration/sendusing").value=2
 lole_Conf.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpserver").value= "192.168.0.xx"
 lole_Conf.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout").value = 30 // tiempo de espera
 lole_Conf.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport").value=25

 lole_Conf.Fields.Update()

lole_Msg.Configuration=lole_Conf

lole_Msg.To= arg_destinatario

lole_Msg.From="algo@algo.com.ar"

lole_Msg.Subject= arg_asunto

lole_Msg.HtmlBody = arg_texto 

lole_Msg.Fields("urn:schemas:mailheader:disposition-notification-to").value = "myemail@myemail.com.ar"

lole_Msg.Fields("urn:schemas:mailheader:return-receipt-to").value = "myemail@myemail.com.ar" 

lole_Msg.DSNOptions = cdoDSNFailure

lole_Msg.Fields.Update()

lole_Msg.Send()

destroy lole_msg

destroy lole_Conf

不知道我做错了什么。

提前致谢!

1 个答案:

答案 0 :(得分:0)

尝试将这两个.Fields注释掉,看看是否有效。

...
lole_Msg.Configuration=lole_Conf
lole_Msg.To= arg_destinatario
lole_Msg.From="algo@algo.com.ar"
lole_Msg.Subject= arg_asunto
lole_Msg.HtmlBody = arg_texto 
//lole_Msg.Fields("urn:schemas:mailheader:disposition-notification-to").value = "myemail@myemail.com.ar"
//lole_Msg.Fields("urn:schemas:mailheader:return-receipt-to").value = "myemail@myemail.com.ar" 
lole_Msg.DSNOptions = cdoDSNFailure
lole_Msg.Fields.Update()
lole_Msg.Send()
...