Force a APEX_MAIL to send a Date: message header? - oracle-apex

In oracle apex, I am using APEX_MAIL.SEND function to send mail. The mail is sent correctly, however, automatically, another mail arrives with the following information:
Your message WAS SUCCESSFULLY RELAYED to:
<account#domain.net>
This delivery report was generated by the program amavisd-new at host deneb.catsa.net. Our internal reference code for your message is 35575-18/W5fQAUCbp11y
INVALID HEADER: MISSING REQUIRED HEADER FIELD
Missing required header field: "Date"
Return-Path: <crvictor#catsa.net>
From: crvictor#catsa.net
Message ID: <D6084414148F0763E053020010AC1735#172.16.0.15>
Subject: =?utf-8?B?QXByb2JhY2nDs24gZGUgc29saWNpdHVkICMxNDg1NSBw?=
=?utf-8?B?b3IgQ1JWSUNUT1I=?=
MISSING REQUIRED HEADER FIELD
The RFC 5322 document specifies rules for forming internet messages.
Section '3.6. Field Definitions' specifies that certain header fields
are required (origination date field and the "From:" originator field).
How can I send the date header using this function?
Note: I don't want to use pl/sql's utl_smtp

Related

Bad Certificate in soap response using UploadCertificate in AdvanceSecurity

I'm using the UploadCertificate message present in Onvif security service (AdvancedSecurity) https://www.onvif.org/specs/srv/security/ONVIF-Security-Service-Spec.pdf
Sniffing messages with wireshark, I noticed a "bad Request" response.
My code is
_tas__UploadCertificate tas__UploadCertificate_tmp;
_tas__UploadCertificateResponse tas__UploadCertificateResponse_tmp;
tas__UploadCertificate_tmp.Certificate.__ptr = certificate;
tas__UploadCertificate_tmp.Certificate.id = tas__CreatePKCS10CSRResponse_tmp.PKCS10CSR.id;
tas__UploadCertificate_tmp.Certificate.__size = tas__CreatePKCS10CSRResponse_tmp.PKCS10CSR.__size;
AddUsernameTokenDigest(deviceKeyStoreBindingProxy, NULL, GetUser(), GetPwd(), deltaT);
deviceKeyStoreBindingProxy->UploadCertificate(&tas__UploadCertificate_tmp, tas__UploadCertificateResponse_tmp)
in soap specification (link above) :
"If the device cannot process one of the uploaded certificates, it shall produce a BadCertificate fault and neither
store the uploaded certificates nor private key in the keystore. The BadCertificate fault shall not be produced
based on the mere fact that the device’s current time lies outside the interval defined by the notBefore and
notAfter fields as specified by [RFC 5280], Sect. 4.1."
But in section 4.1 I don't see any useful information.
my question is:
where is the field notBefore and notAfter? Any suggestion how to fix my code?

Correlation Id and Message Id in IBM MQ

For a c++ and c program, I am trying to set a value for msgId or CorrelId for a particular message in IBM MQ, that will be later put to a topic. But there's an error of "Expression must be a modifiable L-value" for both the ids.
I defined the ids as
MQBYTE24 MsgId;
MQBYTE24 CorrelId;
and the MQMD is defined as default:
MQMD md = {MQMD_DEFAULT};
I cannot use the #define directive as I am trying to single out a message to be put to a topic from the publisher's end. Receive all the messages for subscriber and check for the particular message.
Is my approach of using correlIds or MsgIds correct or is there a better way for doing this?
I would expect you to have some code that looks like the following:-
memcpy(md.CorrelId, CorrelId, MQ_MSG_ID_LENGTH);
Please also remember that the message ID that you MQPUT to a topic does not end up at the subscribers. A new message ID is created for each copy of the published message that is given to each subscriber. You should use the Correlation ID instead to have it flow through to the subscriber, and ensure the subscribers are made correctly to receive the publishers correlation ID.
Read IBM MQ Little Gem #31: Publisher's CorrelId for more information about this.

What is the exact criteria to get Facebook API Error Code: 100 Error Message: Viewer cannot message specified recipients?

when I try to send message using facebook api to a certain user, I get the following error: Error Code: 100 Error Message: Viewer cannot message specified recipients.
I thought I get this error when 1:I'm not a friend of the recipient and 2:he set his "who can contact me" setting to "friends of friends" or 3:set his "whose message do I want filtered into my inbox?" setting to "strict filtering".
However, I was able to send a message who satisfies all the 3 conditions above. So my guess seems to be wrong.
Does anybody know exactly when we get the Error Code: 100 Error Message: Viewer cannot message specified recipients?
Maybe you are using a parameter valid for another method (feed, post), but not for send. Check the valid parameters in the send dialog reference: https://developers.facebook.com/docs/sharing/reference/send-dialog

How to check if MTOM attachment is empty

I am developing webservice based on CXF. One of the requests is that client should be able to upload the optional PDF file as a part of message. This was pretty trivial:
I have added this with getter and setter to my transfer object:
#XmlMimeType("application/octet-stream")
#XmlElement(name = "InvoicePdf", required = false)
private DataHandler invoicePdf = null;
I have also enabled support for MTOM:
Endpoint endpoint = Endpoint.publish("/myWs", new WsImpl(getServletContext()));
SOAPBinding binding = (SOAPBinding) endpoint.getBinding();
binding.setMTOMEnabled(true);
And the usage:
DataHandler pdf2 = p_invoice.getInvoicePdf();
//pdf2.getInputStream();
//pdf2.writeTo(outputstream);
Everything works great. I am able to receive and process the file. However there might be the case when client do not upload the file since it is optional. The problem is that even though the client do not sent the file I am not able to notice it.
pdf2 is not null
pdf2.getInputStream() is not null
pdf2.getInputStream() contains some data. I would like to skip parsing the input stream and looking for PDF signature. Since it is a lot easier to forward the inputstrem to desired outpustream (write to file)
I have not found in DataHandler or DataSource (pdf2.getDataSource() ) API any appropriate method or field for determining file existance. I see in debug that the empty DataHandler contains DataSource which length is 9, which is a lot less then correct PDF file. Unfortunately the length property is not accessible at all.
Any idea how to determine if the file was sent or not?
The solution is to skip xml tag for this attachment in SOAP message. So my mistake was sending empty tag:
<InvoicePdf></InvoicePdf>
Then you get behavior described in question. However if you skip this tag entirely then DataHandel is null, so I am able to distinguish is file was sent or not.

ELMAH noYsod attribute when emailing?

I am new to ELMAH and am configuring it to send email. I cannot find any documentation on what the noYsod attribute means. I have omitted it and am getting email sent successfully, but I'd just like to know what this mystery attribute does.
Extra points...unclear on the priority attribute as well. Prioritizes sending from ELMAH, or tags the sent email with a priority?
<errorMail
from="elmah#example.com"
to="admin#example.com"
subject="..."
priority="Low|Normal|High"
async="true|false"
smtpPort="25"
smtpServer="smtp.example.com"
useSsl="true|false"
userName="johndoe"
password="secret"
noYsod="true|false" />
For those who don't want to browse through source code:
noYsod: Indicates whether YSOD is attached to the e-mail or not. If true, the YSOD is not attached. Default is false.
priority: Sets the MailPriority of the email message. Default is Normal.