IBM Support

How to test email from within DOORS

Troubleshooting


Problem

How to test email from within IBM Rational DOORS.

Symptom

You are planning on using the DOORS email feature or you are using it already but it does not work as expected.

Cause

All functionality for Emails in DOORS resides in the client. 
The protocol that is used for transmitting emails to an email server is SMTP.
The port that is used for transmitting emails to an email server is 25.
The communication is issued on the DOORS client machine, on which the operation that triggers the email is performed.

Environment

Your client machines need to be able to communicate outgoing on port 25 / SMTP.
Your email / SMTP server needs to be able to accept such communication on port 25 from your DOORS client machines, without encryption and without authentication.

Diagnosing The Problem

DOORS client does not report email transmission success or failure during normal operation.
There is no logging of emails issued or transmissions failed.
To test the overall working of the general functionality, you can use DXL -- if this fails, it is conceivable, that the standard emails issued by DOORS core features, will also fail.
If the following DXL code works, it is conceivable that the DOORS core features also issue valid emails, but their routing is interrupted on the SMTP server side.
In essence, you can emulate the DOORS client's email feature by connecting to your SMTP server by telnet: 
telnet <mailserver_hostname> 25
S: 220 smtp.server.com Simple Mail Transfer Service Ready
C: HELO client.example.com
S: 250 Hello client.example.com
C: MAIL FROM:<Sender_Email>
S: 250 OK
C: RCPT TO:<Recipient_Email>
S: 250 OK
C: DATA
S: 354 Send message content; end with <CRLF>.<CRLF>
C: <The message data (body text, subject, e-mail header, attachments etc) is sent>
C: .
S: 250 OK, message accepted for delivery: queued as <xxxx>
C: QUIT
S: 221 Bye
ESMTP is NOT supported!

Resolving The Problem

Run the following DXL
// example to send email
 
string smtpServer = getDatabaseMailServer
string smtpFrom = ""
string smtpFrom2 = getDatabaseMailServerAccount
string smtpTo = "EMAIL_ADDRESS"
string smtpSubject = "test"
string smtpMessage = "this is a test"

print "Mail Server Name: " smtpServer "\n"
print "Mail from account: " smtpFrom2 "\n\n"
bool b = sendEMailNotification(smtpFrom, smtpTo, smtpSubject, smtpMessage)

if (b) {
print "Message sent\n"
} else {
print "Could not send message.\n"
}
 
Disclaimer

All source code and/or binaries included in this document are referred to here as "the Program". IBM is not providing program services of any kind for the Program. IBM is providing the Program on an "AS IS" basis without warranty of any kind. IBM WILL NOT BE LIABLE FOR ANY ACTUAL, DIRECT, SPECIAL, INCIDENTAL, OR INDIRECT DAMAGES OR FOR ANY ECONOMIC CONSEQUENTIAL DAMAGES (INCLUDING LOST PROFITS OR SAVINGS), EVEN IF IBM, OR ITS RESELLER, HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.

[{"Business Unit":{"code":"BU059","label":"IBM Software w\/o TPS"},"Product":{"code":"SSKR2T","label":"IBM Engineering Requirements Management DOORS"},"ARM Category":[{"code":"","label":""}],"Platform":[{"code":"PF033","label":"Windows"}],"Version":"All Versions","Line of Business":{"code":"LOB59","label":"Sustainability Software"}}]

Document Information

Modified date:
19 May 2020

UID

swg21991822