У нас есть класс, который создает и отправляет почтовое сообщение. Я хочу внести некоторые изменения, но перед этим я хочу проверить некоторые вещи (например, как отображаются URL-адреса). Я пытаюсь вручную отправить сообщение с консоли, но получаю некоторые ошибки. Вот метод SendMessage
класса:
Method SendMessage(pSubject As %String, pMessage As %String, pEmailAddresses) As %Status
{
set tSC=$$$OK
set tMailMessage=##class(%Net.MailMessage).%New()
do tMailMessage.To.Insert($PIECE(pEmailAddresses,",",1))
for tI=2:1:$LENGTH(pEmailAddresses,",") {
do tMailMessage.Cc.Insert($PIECE(pEmailAddresses,",",tI))
}
set tMailMessage.Subject=pSubject
set tMailMessage.Charset="iso-8859-1"
set tSC=tMailMessage.TextData.Write(pMessage)
quit:'tSC
Set tSC1=..Adapter.SendMail(tMailMessage)
if 'tSC1 {
//Log warning about being unable to send mail.
do $SYSTEM.Status.DecomposeStatus(tSC1,.err)
$$$LOGWARNING("Could not send email: "_err(err))
kill err
}
quit tSC
}
С терминала я могу создать экземпляр класса MailMessage и установить данные тела, но когда я пытаюсь отправить, я получаю сообщение об ошибке:
USER>set tMailMessage=##class(%Net.MailMessage).%New()
USER>do tMailMessage.To.Insert("[email protected]")
USER>set tSC=tMailMessage.TextData.Write("This is a URL test http://www.google.com, thank you")
USER>set tMailMessage.Subject="This is a test"
USER>set tMailMessage.Charset="iso-8859-1"
USER>set tSC1=..Adapter.SendMail(tMailMessage)
SET tSC1=..Adapter.SendMail(tMailMessage)
^
<NO CURRENT OBJECT>
Как видите, когда я пытаюсь SendMail
, он говорит мне NO CURRENT OBJECT
update Я заметил эти строки в начале класса:
Parameter ADAPTER = "EnsLib.EMail.OutboundAdapter";
Property Adapter As EnsLib.EMail.OutboundAdapter;
Итак, я попробовал USER>set tSC1=EnsLib.EMail.OutboundAdapter.SendMail(tMailMessage)
, но это привело к <UNDEFINED> *EnsLib