Email 如何通过testcomplete在PC中发送outlook邮件而不打开outlook

Email 如何通过testcomplete在PC中发送outlook邮件而不打开outlook,email,vbscript,outlook,testcomplete,Email,Vbscript,Outlook,Testcomplete,我正在尝试在testcomplete中使用vb脚本语言发送outlook邮件。我可以发送,但如果outlook在我的电脑中打开,则只发送邮件;如果我的电脑中未打开outlook,则即使在执行此脚本后,在打开outllok之前,我的邮件也不会发送 这是我的密码: Function SendMail Dim objOutLook, NamespaceMAPI,objNewMail, fso, SendReceiveControls Dim strTo,strCc ,strBcc ,strSubje

我正在尝试在testcomplete中使用vb脚本语言发送outlook邮件。我可以发送,但如果outlook在我的电脑中打开,则只发送邮件;如果我的电脑中未打开outlook,则即使在执行此脚本后,在打开outllok之前,我的邮件也不会发送

这是我的密码:

Function SendMail

Dim objOutLook, NamespaceMAPI,objNewMail, fso, SendReceiveControls
Dim strTo,strCc ,strBcc ,strSubject, AccountName,strAttachmentPath

strSubject="test"
strTo=yyy@yy.com
strCc=XXX@XX.com
strBcc =zzz@zzz.com
strAttachmentPath="c:\text.txt"


If strTo ="" and strCc = "" and strBcc =""Then
Exit function
ElseIf strSubject =""Then 
Exit function
End If

Set objOutLook = CreateObject("Outlook.Application")    
Set NamespaceMAPI = objOutLook.GetNamespace("MAPI")
Set objNewMail = objOutLook.CreateItem(olMailItem)  
objOutLook.DisplayAlerts =True  
objNewMail.TO = strTo
objNewMail.CC = strCc
objNewMail.BCC=strBcc
objNewMail.Subject = strSubject
objNewMail.Body = strMsg

If strAttachmentPath <> "" Then 
Set fso =CreateObject("Scripting.FileSystemObject")
If fso.FileExists(strAttachmentPath) Then
    objNewMail.Attachments.Add(strAttachmentPath)

    objNewMail.display

Else 
    msgbox "Attachment File Does not exists"
End If  
End If
AccountName="XXXXXX@XXXX.com"
' Finding the "Send/Receive" control
  Set SendReceiveControls = NamespaceMAPI.GetDefaultFolder("Inbox")._
                CommandBars("STANDARD").Controls("Send/Receive")

  Set Item = Nothing
  'msgbox "send:"&SendReceiveControls.Controls.Count
 For I = 1 To SendReceiveControls.Controls.Count

    If InStr(SendReceiveControls.Controls(I).Caption, AccountName) > 0 Then
      Set Item = SendReceiveControls.Controls(I)
      'msgbox "send1"&SendReceiveControls.Controls(I)
      Exit For
    End If

 Next
 ' Executing the "Send/Receive" action
  Item.Controls(1).Execute()

objOutLook.Quit

''''''' Releasing objects '''''''
Set objOutLook =Nothing 
Set objNewMail = Nothing
Set fso = Nothing
End Function 
函数SendMail
Dim objOutLook、名称空间MAPI、objNewMail、fso、SendReceiveControls
Dim strTo、strCc、strBcc、strSubject、AccountName、strAttachmentPath
strSubject=“测试”
斯特托=yyy@yy.com
strc=XXX@XX.com
strBcc=zzz@zzz.com
strAttachmentPath=“c:\text.txt”
如果strTo=“”和strCc=“”和strBcc=“”,则
退出功能
ElseIf strSubject=“”然后
退出功能
如果结束
设置objOutLook=CreateObject(“Outlook.Application”)
Set NamespaceMAPI=objOutLook.GetNamespace(“MAPI”)
设置objNewMail=objOutLook.CreateItem(olMailItem)
objOutLook.DisplayAlerts=True
objNewMail.TO=strTo
objNewMail.CC=strCc
objNewMail.BCC=strBcc
objNewMail.Subject=strSubject
objNewMail.Body=strMsg
如果是strAttachmentPath“”,则
设置fso=CreateObject(“Scripting.FileSystemObject”)
如果存在fso.files(strAttachmentPath),则
objNewMail.Attachments.Add(strAttachmentPath)
objNewMail.display
其他的
msgbox“附件文件不存在”
如果结束
如果结束
AccountName=”XXXXXX@XXXX.com"
'查找“发送/接收”控件
设置SendReceiveControls=NamespaceMAPI.GetDefaultFolder(“收件箱”)_
命令栏(“标准”)控件(“发送/接收”)
设置项=无
“msgbox”发送:“&SendReceiveControls.Controls.Count”
对于I=1,发送ReceiveControls.Controls.Count
如果InStr(SendReceiveControls.Controls(I).Caption,AccountName)>0,则
Set Item=SendReceiveControls.Controls(I)
'msgbox“send1”&SendReceiveControls.Controls(I)
退出
如果结束
下一个
'执行“发送/接收”操作
Item.Controls(1.Execute)()
objOutLook,退出
释放物体
设置objOutLook=Nothing
Set objNewMail=Nothing
设置fso=无
端函数

请建议我如何处理此问题…提前谢谢

尝试
objNewMail.Body.Send
而不是尝试执行发送和接收按钮。下面是一个简单的例子:

Function SendMail()
    Dim objOutlook, objNewMail
    Set objOutLook = CreateObject("Outlook.Application")    
    Set objNewMail = objOutLook.CreateItem(olMailItem)  
    objNewMail.TO = "myrecip@test.com"
    objNewMail.Subject = "test"
    objNewMail.Body = "test"
    objNewMail.Send
End Function

尝试
objNewMail.Body.Send
,而不是尝试执行发送和接收按钮。下面是一个简单的例子:

Function SendMail()
    Dim objOutlook, objNewMail
    Set objOutLook = CreateObject("Outlook.Application")    
    Set objNewMail = objOutLook.CreateItem(olMailItem)  
    objNewMail.TO = "myrecip@test.com"
    objNewMail.Subject = "test"
    objNewMail.Body = "test"
    objNewMail.Send
End Function

尝试
objNewMail.Body.Send
,而不是尝试执行发送和接收按钮。下面是一个简单的例子:

Function SendMail()
    Dim objOutlook, objNewMail
    Set objOutLook = CreateObject("Outlook.Application")    
    Set objNewMail = objOutLook.CreateItem(olMailItem)  
    objNewMail.TO = "myrecip@test.com"
    objNewMail.Subject = "test"
    objNewMail.Body = "test"
    objNewMail.Send
End Function

尝试
objNewMail.Body.Send
,而不是尝试执行发送和接收按钮。下面是一个简单的例子:

Function SendMail()
    Dim objOutlook, objNewMail
    Set objOutLook = CreateObject("Outlook.Application")    
    Set objNewMail = objOutLook.CreateItem(olMailItem)  
    objNewMail.TO = "myrecip@test.com"
    objNewMail.Subject = "test"
    objNewMail.Body = "test"
    objNewMail.Send
End Function

您真的需要将其与outlook一起发送吗

我使用此javascript代码发送电子邮件,然后在outlook中,您只需将其标记为非垃圾邮件,否则,它将直接进入垃圾邮件收件箱

function SendEmail(mFrom, mTo, mSubject, mBody, username, password)
{
  var i, schema, mConfig, mMessage;

  try
  {
    schema = "http://schemas.microsoft.com/cdo/configuration/";
    mConfig = Sys.OleObject("CDO.Configuration");
    mConfig.Fields.Item(schema + "sendusing") = 2; // cdoSendUsingExchange
    mConfig.Fields.Item(schema + "smtpserver") = "STMP SERVER ADDRESS HERE"; // SMTP server
    mConfig.Fields.Item(schema + "smtpserverport") = 25; // Port number
    mConfig.Fields.Item(schema + "smtpauthenticate") = 1; // Authentication mechanism
        mConfig.Fields.Item(schema + "sendusername") = username; // User name (if needed)
    mConfig.Fields.Item(schema + "sendpassword") = password; // User password (if needed)
    mConfig.Fields.Update();

    mMessage = Sys.OleObject("CDO.Message");
    mMessage.Configuration = mConfig;
    mMessage.From = mFrom;
    mMessage.To = mTo;
    mMessage.Subject = mSubject;
    mMessage.HTMLBody = mBody;

    mMessage.Send();
  }
  catch (exception)
  {
    Log.Error("E-mail cannot be sent", exception.description);
    return false;
  }
  Log.Message("Message to <" + mTo + "> was successfully sent");
  return true;
}
函数sendmail(mFrom、mTo、mSubject、mBody、用户名、密码)
{
变量i、模式、mConfig、消息;
尝试
{
架构=”http://schemas.microsoft.com/cdo/configuration/";
mConfig=Sys.OleObject(“CDO.Configuration”);
mConfig.Fields.Item(模式+“sendusing”)=2;//cdoSendUsingExchange
mConfig.Fields.Item(schema+“smtpserver”)=“此处的STMP服务器地址”;//SMTP服务器
mConfig.Fields.Item(模式+“smtpserverport”)=25;//端口号
mConfig.Fields.Item(schema+“smtpauthenticate”)=1;//身份验证机制
mConfig.Fields.Item(schema+“sendusername”)=username;//用户名(如果需要)
mConfig.Fields.Item(schema+“sendpassword”)=password;//用户密码(如果需要)
mConfig.Fields.Update();
mMessage=Sys.OleObject(“CDO.Message”);
mMessage.Configuration=mConfig;
mMessage.From=mFrom;
M消息To=mTo;
mMessage.Subject=mSubject;
mMessage.HTMLBody=mBody;
mMessage.Send();
}
捕获(例外)
{
Log.Error(“无法发送电子邮件”,异常。说明);
返回false;
}
Log.Message(“发送到的消息已成功发送”);
返回true;
}

您真的需要将其与outlook一起发送吗

我使用此javascript代码发送电子邮件,然后在outlook中,您只需将其标记为非垃圾邮件,否则,它将直接进入垃圾邮件收件箱

function SendEmail(mFrom, mTo, mSubject, mBody, username, password)
{
  var i, schema, mConfig, mMessage;

  try
  {
    schema = "http://schemas.microsoft.com/cdo/configuration/";
    mConfig = Sys.OleObject("CDO.Configuration");
    mConfig.Fields.Item(schema + "sendusing") = 2; // cdoSendUsingExchange
    mConfig.Fields.Item(schema + "smtpserver") = "STMP SERVER ADDRESS HERE"; // SMTP server
    mConfig.Fields.Item(schema + "smtpserverport") = 25; // Port number
    mConfig.Fields.Item(schema + "smtpauthenticate") = 1; // Authentication mechanism
        mConfig.Fields.Item(schema + "sendusername") = username; // User name (if needed)
    mConfig.Fields.Item(schema + "sendpassword") = password; // User password (if needed)
    mConfig.Fields.Update();

    mMessage = Sys.OleObject("CDO.Message");
    mMessage.Configuration = mConfig;
    mMessage.From = mFrom;
    mMessage.To = mTo;
    mMessage.Subject = mSubject;
    mMessage.HTMLBody = mBody;

    mMessage.Send();
  }
  catch (exception)
  {
    Log.Error("E-mail cannot be sent", exception.description);
    return false;
  }
  Log.Message("Message to <" + mTo + "> was successfully sent");
  return true;
}
函数sendmail(mFrom、mTo、mSubject、mBody、用户名、密码)
{
变量i、模式、mConfig、消息;
尝试
{
架构=”http://schemas.microsoft.com/cdo/configuration/";
mConfig=Sys.OleObject(“CDO.Configuration”);
mConfig.Fields.Item(模式+“sendusing”)=2;//cdoSendUsingExchange
mConfig.Fields.Item(schema+“smtpserver”)=“此处的STMP服务器地址”;//SMTP服务器
mConfig.Fields.Item(模式+“smtpserverport”)=25;//端口号
mConfig.Fields.Item(schema+“smtpauthenticate”)=1;//身份验证机制
mConfig.Fields.Item(schema+“sendusername”)=username;//用户名(如果需要)
mConfig.Fields.Item(schema+“sendpassword”)=password;//用户密码(如果需要)
mConfig.Fields.Update();
mMessage=Sys.OleObject(“CDO.Message”);
mMessage.Configuration=mConfig;
mMessage.From=mFrom;
M消息To=mTo;
mMessage.Subject=mSubject;
mMessage.HTMLBody=mBody;
mMessage.Send();
}
捕获(例外)
{
Log.Error(“无法发送电子邮件”,异常。说明);
返回false;
}
Log.Message(“发送到的消息已成功发送”);
返回true;
}

您真的需要将其与outlook一起发送吗

我使用此javascript代码发送电子邮件,然后在outlook中,您只需将其标记为非垃圾邮件,否则,它将直接进入垃圾邮件收件箱

function SendEmail(mFrom, mTo, mSubject, mBody, username, password)
{
  var i, schema, mConfig, mMessage;

  try
  {
    schema = "http://schemas.microsoft.com/cdo/configuration/";
    mConfig = Sys.OleObject("CDO.Configuration");
    mConfig.Fields.Item(schema + "sendusing") = 2; // cdoSendUsingExchange
    mConfig.Fields.Item(schema + "smtpserver") = "STMP SERVER ADDRESS HERE"; // SMTP server
    mConfig.Fields.Item(schema + "smtpserverport") = 25; // Port number
    mConfig.Fields.Item(schema + "smtpauthenticate") = 1; // Authentication mechanism
        mConfig.Fields.Item(schema + "sendusername") = username; // User name (if needed)
    mConfig.Fields.Item(schema + "sendpassword") = password; // User password (if needed)
    mConfig.Fields.Update();

    mMessage = Sys.OleObject("CDO.Message");
    mMessage.Configuration = mConfig;
    mMessage.From = mFrom;
    mMessage.To = mTo;
    mMessage.Subject = mSubject;
    mMessage.HTMLBody = mBody;

    mMessage.Send();
  }
  catch (exception)
  {
    Log.Error("E-mail cannot be sent", exception.description);
    return false;
  }
  Log.Message("Message to <" + mTo + "> was successfully sent");
  return true;
}
函数sendmail(mFrom、mTo、mSubject、mBody、用户名、密码)
{
变量i、模式、mConfig、消息;
尝试
{
架构=”http://schemas.microsoft.com/cdo/configuration/";
mConfig=Sys.OleObject(“CDO.Configuration”);
mConfig.Fields.Item(模式+“sendusing”)=2;//cdoSendUsingExchange
mConfig.Fields.Item(架构+“smtpserver”)=“S