如何使用office outlook立刻发送一封邮件

时间:2022-09-24 08:29:43
在使用outlook的MailItem组件调用Display方法后。如果没有打开outlook客户端。邮件会自动保存到发件箱中。如何不打开outlook客户端让邮件立刻发送出去?不要用send方法。因为我需要显示出邮件的编辑界面。谢谢大家。
新注册的账号。没有可用分。。。。。

下边是vb代码。

   Dim ol As Outlook.Application
   Dim NewTask As Outlook.TaskItem
   Dim newem As Outlook.MailItem
   Set ol = New Outlook.Application

   Set newem = ol.CreateItem(OlItemType.olMailItem)

    newem.To = "aa@aa.com"   '邮件接收人
    
    newem.CC = "aa@aa.com"  '抄送
    newem.Subject = "dfs"  '邮件主题
    
    newem.Body = "'邮件正文"
    
    newem.Display

10 个解决方案

#1


这样做是不建议的,因为你在outlook之外写的程序每次发邮件都会弹告警框,有时甚至根本不让你发
如果要不放在outbox中,试试使用online模式,也就是不要使用Cached Exchange Server模式看看

#2


首先谢谢一楼的回复。
我把需求解释详细点。
1.点击程序中的一个按钮[发送邮件]时。需要弹出office outlook的发送邮件界面。用户可能会从自己的联系人当中选择一些添加到收件人里。
2.点击程序中的一个按钮[发送邮件]时。需要弹出office outlook的发送邮件界面,点击界面上的“发送”无论office outlook客户端有没有打开,都要立刻将邮件发送出去。

#3


前提是office要支持你这个功能才行。而且我说的你也没试,光提要求有什么用
引用 2 楼 firstroot 的回复:
首先谢谢一楼的回复。
我把需求解释详细点。
1.点击程序中的一个按钮[发送邮件]时。需要弹出office outlook的发送邮件界面。用户可能会从自己的联系人当中选择一些添加到收件人里。
2.点击程序中的一个按钮[发送邮件]时。需要弹出office outlook的发送邮件界面,点击界面上的“发送”无论office outlook客户端有没有打开,都要立刻将邮件发送出去。

#4


引用 1 楼 arong1234 的回复:
这样做是不建议的,因为你在outlook之外写的程序每次发邮件都会弹告警框,有时甚至根本不让你发
如果要不放在outbox中,试试使用online模式,也就是不要使用Cached Exchange Server模式看看

"这样做是不建议的",作为开发人员。只做微软建议的那我们都不要活了。
"因为你在outlook之外写的程序每次发邮件都会弹告警框"我之所以要把需求再写清楚就是因为你这句话。只有调用send方法时才会弹出警告框。用display方法不会弹出警告框。虽然说你没有义务回答我。但是如果你回答了。我希望你能认真对待一下。
"前提是office要支持你这个功能才行。"如果什么都让office支持了。那还要我们做什么?
"而且我说的你也没试,光提要求有什么用"我试过了使用online模式不行才继续将我的需求解释清楚的。你回复我之前试过你的方法可行么?

#5


关注下...

#6


喊口号有什么用,微软不会听你口号就按照你的方式去做的。你用人家的平台当然要遵守人家的规定,人家Outlook有些功能本来就是限制的,你要避免这种限制唯一的可能就是不要用人家的outlook
我告诉你的东西你不去试试,你光在这吵有什么用。如果我说的行,你当然就可以实现。如果我说的那个也不行,你就不要想了,Outlook这条路肯定就不行。
引用 4 楼 firstroot 的回复:
引用 1 楼 arong1234 的回复:
这样做是不建议的,因为你在outlook之外写的程序每次发邮件都会弹告警框,有时甚至根本不让你发
如果要不放在outbox中,试试使用online模式,也就是不要使用Cached Exchange Server模式看看

"这样做是不建议的",作为开发人员。只做微软建议的那我们都不要活了。
"因为你在outlook之外写的程序每次发邮件都会弹告警框"我之所以要把需求再写清楚就是因为你这句话。只有调用send方法时才会弹出警告框。用display方法不会弹出警告框。虽然说你没有义务回答我。但是如果你回答了。我希望你能认真对待一下。
"前提是office要支持你这个功能才行。"如果什么都让office支持了。那还要我们做什么?
"而且我说的你也没试,光提要求有什么用"我试过了使用online模式不行才继续将我的需求解释清楚的。你回复我之前试过你的方法可行么?

#7


别人给你建议是帮你,别人当然没有义务帮你去测试!!你既然“试过不行”,你为什么不说?你要寻求帮助,就要好好理顺心态,人家叫你试的结果你都不说,别人怎么知道你试没有?

如果我说的你试过不行,你就不要想了,Outlook平台上你绝对不可能做到这点的。
引用 4 楼 firstroot 的回复:
引用 1 楼 arong1234 的回复:
"我试过了使用online模式不行才继续将我的需求解释清楚的。你回复我之前试过你的方法可行么?

#8


引用 7 楼 arong1234 的回复:
别人给你建议是帮你,别人当然没有义务帮你去测试!!你既然“试过不行”,你为什么不说?你要寻求帮助,就要好好理顺心态,人家叫你试的结果你都不说,别人怎么知道你试没有?

如果我说的你试过不行,你就不要想了,Outlook平台上你绝对不可能做到这点的。
引用 4 楼 firstroot 的回复:
引用 1 楼 arong1234 的回复:
"我试过了使用online模式不行才继续将我的需求解释清楚的。你回复我之前试过你的方法可行么?


谢谢你的回复。看来Outlook平台是你出的。你说行就行你说不行就不行了。你可以走开了。我不是寻找你这样的牛人来帮忙的。再次感谢你的回复。

#9


我的解决方案
调用下SyncObject.start即可
代码如下:

  Dim ol As Outlook.Application 
  Dim NewTask As Outlook.TaskItem 
  Dim newem As Outlook.MailItem 
  Set ol = New Outlook.Application 

  Set newem = ol.CreateItem(OlItemType.olMailItem) 

    newem.To = "aa@aa.com"  '邮件接收人 
    
    newem.CC = "aa@aa.com"  '抄送 
    newem.Subject = "dfs"  '邮件主题 
    
    newem.Body = "'邮件正文" 
    
    newem.Display
Dim nsp As Outlook.NameSpace
    Dim sycs As Outlook.SyncObjects
    Dim syc As Outlook.SyncObject
    Dim i As Integer
    Set nsp = ol.GetNamespace("MAPI")
    Set sycs = nsp.SyncObjects
    Dim strPrompt As Integer

    For i = 1 To sycs.Count
        Set syc = sycs.Item(i)
        syc.Start
       
    Next

#10


你很强,对不住了

#1


这样做是不建议的,因为你在outlook之外写的程序每次发邮件都会弹告警框,有时甚至根本不让你发
如果要不放在outbox中,试试使用online模式,也就是不要使用Cached Exchange Server模式看看

#2


首先谢谢一楼的回复。
我把需求解释详细点。
1.点击程序中的一个按钮[发送邮件]时。需要弹出office outlook的发送邮件界面。用户可能会从自己的联系人当中选择一些添加到收件人里。
2.点击程序中的一个按钮[发送邮件]时。需要弹出office outlook的发送邮件界面,点击界面上的“发送”无论office outlook客户端有没有打开,都要立刻将邮件发送出去。

#3


前提是office要支持你这个功能才行。而且我说的你也没试,光提要求有什么用
引用 2 楼 firstroot 的回复:
首先谢谢一楼的回复。
我把需求解释详细点。
1.点击程序中的一个按钮[发送邮件]时。需要弹出office outlook的发送邮件界面。用户可能会从自己的联系人当中选择一些添加到收件人里。
2.点击程序中的一个按钮[发送邮件]时。需要弹出office outlook的发送邮件界面,点击界面上的“发送”无论office outlook客户端有没有打开,都要立刻将邮件发送出去。

#4


引用 1 楼 arong1234 的回复:
这样做是不建议的,因为你在outlook之外写的程序每次发邮件都会弹告警框,有时甚至根本不让你发
如果要不放在outbox中,试试使用online模式,也就是不要使用Cached Exchange Server模式看看

"这样做是不建议的",作为开发人员。只做微软建议的那我们都不要活了。
"因为你在outlook之外写的程序每次发邮件都会弹告警框"我之所以要把需求再写清楚就是因为你这句话。只有调用send方法时才会弹出警告框。用display方法不会弹出警告框。虽然说你没有义务回答我。但是如果你回答了。我希望你能认真对待一下。
"前提是office要支持你这个功能才行。"如果什么都让office支持了。那还要我们做什么?
"而且我说的你也没试,光提要求有什么用"我试过了使用online模式不行才继续将我的需求解释清楚的。你回复我之前试过你的方法可行么?

#5


关注下...

#6


喊口号有什么用,微软不会听你口号就按照你的方式去做的。你用人家的平台当然要遵守人家的规定,人家Outlook有些功能本来就是限制的,你要避免这种限制唯一的可能就是不要用人家的outlook
我告诉你的东西你不去试试,你光在这吵有什么用。如果我说的行,你当然就可以实现。如果我说的那个也不行,你就不要想了,Outlook这条路肯定就不行。
引用 4 楼 firstroot 的回复:
引用 1 楼 arong1234 的回复:
这样做是不建议的,因为你在outlook之外写的程序每次发邮件都会弹告警框,有时甚至根本不让你发
如果要不放在outbox中,试试使用online模式,也就是不要使用Cached Exchange Server模式看看

"这样做是不建议的",作为开发人员。只做微软建议的那我们都不要活了。
"因为你在outlook之外写的程序每次发邮件都会弹告警框"我之所以要把需求再写清楚就是因为你这句话。只有调用send方法时才会弹出警告框。用display方法不会弹出警告框。虽然说你没有义务回答我。但是如果你回答了。我希望你能认真对待一下。
"前提是office要支持你这个功能才行。"如果什么都让office支持了。那还要我们做什么?
"而且我说的你也没试,光提要求有什么用"我试过了使用online模式不行才继续将我的需求解释清楚的。你回复我之前试过你的方法可行么?

#7


别人给你建议是帮你,别人当然没有义务帮你去测试!!你既然“试过不行”,你为什么不说?你要寻求帮助,就要好好理顺心态,人家叫你试的结果你都不说,别人怎么知道你试没有?

如果我说的你试过不行,你就不要想了,Outlook平台上你绝对不可能做到这点的。
引用 4 楼 firstroot 的回复:
引用 1 楼 arong1234 的回复:
"我试过了使用online模式不行才继续将我的需求解释清楚的。你回复我之前试过你的方法可行么?

#8


引用 7 楼 arong1234 的回复:
别人给你建议是帮你,别人当然没有义务帮你去测试!!你既然“试过不行”,你为什么不说?你要寻求帮助,就要好好理顺心态,人家叫你试的结果你都不说,别人怎么知道你试没有?

如果我说的你试过不行,你就不要想了,Outlook平台上你绝对不可能做到这点的。
引用 4 楼 firstroot 的回复:
引用 1 楼 arong1234 的回复:
"我试过了使用online模式不行才继续将我的需求解释清楚的。你回复我之前试过你的方法可行么?


谢谢你的回复。看来Outlook平台是你出的。你说行就行你说不行就不行了。你可以走开了。我不是寻找你这样的牛人来帮忙的。再次感谢你的回复。

#9


我的解决方案
调用下SyncObject.start即可
代码如下:

  Dim ol As Outlook.Application 
  Dim NewTask As Outlook.TaskItem 
  Dim newem As Outlook.MailItem 
  Set ol = New Outlook.Application 

  Set newem = ol.CreateItem(OlItemType.olMailItem) 

    newem.To = "aa@aa.com"  '邮件接收人 
    
    newem.CC = "aa@aa.com"  '抄送 
    newem.Subject = "dfs"  '邮件主题 
    
    newem.Body = "'邮件正文" 
    
    newem.Display
Dim nsp As Outlook.NameSpace
    Dim sycs As Outlook.SyncObjects
    Dim syc As Outlook.SyncObject
    Dim i As Integer
    Set nsp = ol.GetNamespace("MAPI")
    Set sycs = nsp.SyncObjects
    Dim strPrompt As Integer

    For i = 1 To sycs.Count
        Set syc = sycs.Item(i)
        syc.Start
       
    Next

#10


你很强,对不住了