如何在Gupta Centura/Team Developer 6中通过Office365 SMTP发送邮件?
关于Centura/Team Developer 6中使用SalMail对接Office365 SMTP的问题解答
1. 现有代码是否适配Office365?
TD6的SalMail类支持通过Office365 SMTP发送邮件,但现有代码需注意几个关键细节以确保正常运行:
- 端口与加密:你设置的
nPort=587和bSSL=True符合Office365 SMTP要求(Office365 587端口使用STARTTLS加密,TD6的bSSL=True会自动适配该加密方式) - 账号认证:
- 若发件账号未启用MFA,直接使用账号密码即可
- 若启用了MFA,需使用应用密码替代普通密码(在Office365账号设置中生成)
- 发件人匹配:确保
dfFrom与sUserName完全一致(Office365要求发件人地址必须匹配认证账号) - 返回值校验:需检查
oSMTP.Connect()和oSMTP.SendMail()的返回值,0表示操作成功,非0则为错误码,可通过oSMTP.GetLastErrorText()获取错误详情
调整后的完整可运行示例代码:
Call oSMTP.SetUser( sUserName, sPassword ) Call oSMTP.SetMailServer(sServerName, nPort, bSSL, bSend) Set nreturnConnect = oSMTP.Connect() If nreturnConnect <> 0 Then ! 处理连接错误 Call SalMessageBox( oSMTP.GetLastErrorText(), "连接失败", MB_Ok ) Return End If ! 指定邮件格式,0=纯文本,1=HTML Set nMailFormat = 0 Set nreturnSendMail = oSMTP.SendMail( nMailFormat, dfSubject, dfFrom, dfTo, dfCc, mlEmailContent, sAttachments, bDeliveryRecipient, nMailPriority ) If nreturnSendMail <> 0 Then Call SalMessageBox( oSMTP.GetLastErrorText(), "发送失败", MB_Ok ) Else Call SalMessageBox( "邮件发送成功", "提示", MB_Ok ) End If Call oSMTP.Disconnect()
2. nMailFormat参数的有效值
在TD6的SalMail类中,nMailFormat仅支持两个有效值:
0:纯文本格式,邮件内容无排版格式1:HTML格式,邮件内容可包含HTML标签实现排版、插入图片等效果
内容的提问来源于stack exchange,提问作者André Fusioka
相关产品推荐
相关产品推荐

