如何使用 Gupta Centura/Team Developer 发送电子邮件?

问题描述 投票:0回答:1

我们有一个在 Centura/Team Developer 6 中开发的应用程序。我们将迁移到较新的版本,但目前我们仍在开发版本 6 的功能。需要一项新功能,即在用户执行特定操作后发送电子邮件。 TD 上可以通过 SMTP 发送电子邮件吗?

我们使用office365在用另一种语言编写的应用程序中发送电子邮件。我们可以在TD中使用它吗? 有人可以举个例子吗

文档提到了 SalMail 类,但我们还没有弄清楚如何使其与 Office365 一起工作。 我们使用以下参数:

[email protected]
sPassword=<password>
sServerName=smtp.office365.com
nPort=587
bSSL=True
bSend=True

dfSubject="System Notification"
[email protected]
[email protected]
dfCc=Null
mlEmailContent="Test message. Do not reply."
sAttachments=Null
bDeliveryRecipient=Null
nMailPriority=1

然后在代码中:

Call oSMTP.SetUser( sUserName, sPassword )
Call oSMTP.SetMailServer(sServerName, nPort, bSSL, bSend)
Set nreturnConnect = oSMTP.Connect()

Set nreturnSendMail = oSMTP.SendMail( nMailFormat, dfSubject,
dfFrom, dfTo, dfCc, mlEmailContent, sAttachments, bDeliveryRecipient,
nMailPriority )

这段代码应该可以在office365上使用吗? nMailFormat 接受哪些值?

注意:我不是 TD 开发人员,我只是帮助 TD 团队。

谢谢你。

smtp guptateamdeveloper centura
1个回答
0
投票

使用 TD6 通过 SMTP 发送电子邮件是绝对可能的。使用 Outlook 客户端 (Office 365 WinAPI) 或 SalMail。
如果您想要 TD6.2 中关于如何使用 Office 365 WinAPI 发送的简单示例 - 在这里获取:Outlook 自动化并包括附件
但它看起来像你正在使用 SalMail - 但无法从你的代码中真正看出,因为你没有包含 'oSMTP' 的声明,也没有显示函数 'oSMTP.SendMail' (所以我不不知道它在做什么 - 如果它是 SalMail,它应该看起来像 :

Return SmtpSendMail( m_nSmtpObjectAddress, nFormatFlag, sSubject, sOriginator, sRecipientsList, sCarbonCopy, sBody, sAttachments, bReceiptRequested, nFlag ) 
) 在“oSMTP.SendMail”函数中。假设它是 SalMail,您确实需要检查您的 TD 应用程序是 32 位还是 64 位,因为您的 Office 365 很可能是 64 位 - 问题可能是,如果它们不匹配位数,它们会发生冲突。理论上,如果您将 nMailFormat (在 SmtpSendMail() 中传递到 nFormatFlag )设置为 MAIL_FORMAT_PLAIN_TEXT (值 0 )并尝试端口 25 而不是 587,那么您的代码应该可以工作。
如果您无法让 SalMail 工作,可能是位数问题,因此可以快速且轻松地使用 Office 365 API,如上面的示例 - 确实可以正常工作,此外还为您提供了无数其他功能。

© www.soinside.com 2019 - 2024. All rights reserved.