excel 通过VB连接outlook, 如何实现无需excel表格手动换行点击“发送”即可自动连续发送的效果

我想在excel中建立超链接,用outlook发邮件,但是怎么发出去啊_百度知道
我想在excel中建立超链接,用outlook发邮件,但是怎么发出去啊
但是不知道怎么填,说通俗一点哦,哪位知道的大虾教下我麻就是已经出现outlook的窗口了
asp" target="_blank">http: /svcs/hotmail/httpmail, 服务器;Hotmail&#39服务目前不可用;, 安全(SSL);.msn: 0: &#39。请稍后再试;Service Unavailable&#39://services, 协议.asp&#39: &#39://services, 服务器响应.com/svcs/hotmail/httpmail, 套接字错误, 错误号.msn。 帐户, 服务器错误: &#39;<a href=", 端口: 否: 87: HTTPMail
提问者采纳
。如果出现Interner连接向导.)。完成即可发送,在弹出窗口点发送..com)然后填好用户名与密码,smtp服务器为smtp,然后填好服务器(如sina的pop3服务器为pop插入→超链接→电子邮件地址填好相关内容,那是你的Outlook没有配置好,即在邮件中显示的名字。点击链接后。填一个显示名、sina.。下一步后输入你的电子邮件地址(要去申请.sina,如163
其他类似问题
68人觉得有用
超链接的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁我们专注与office 2007.
outlook2007如何自动发送邮件
outlook2007如何自动发送邮件,工作中遇到一个需求,需要使用Outlook自动发送邮件。别误会,我没打算做黑客行为,就是想用Outlook发送用户反馈给我们。就是,用户在文本框里面输入他们的意见,按发送按钮,意见就自动以email的形势发送给开发人员,还不能让用户知道我们盗用了他们的邮箱(虽然不是黑客,行为也够黑的...)  看中Outlook的原因有二  1,由于公司的政策,Outlook人人必用(相信很多IT,非IT公司都是这样)  2,即使脱机状态也不会报错,等联机的时候一样会把邮件发出。勤劳的Outlook功能啊。  .net framework中有模拟outlook来连接smtp服务器发送邮件的类,我们这篇文章主要不是说这个,但是贴一段网上找来的这一种方法的示例代码,防止有人被标题骗进来骂本人标题党。  MailMessage   mail   =   new   MailMessage();     mail.From   =   &JobAlarm&;     mail.Subject   =   &Job   Alarm&;     mail.Priority   =   MailPriority.H     mail.BodyEncoding   =   Encoding.GetEncoding(&BIG5&);     mail.BodyFormat   =   MailFormat.T     mail.To   =   &Receive   Body   &#39;s   Mail   Address&;     mail.Body   =   &The   mail&#39;s   Content&;     SmtpMail.SmtpServer   =   &Smtp   Server   Address&;     SmtpMail.Send(mail);     下面说正题,话说,小妹在各位神通广大的博主和同行的启发下,想出来两个方法,可惜都不太尽如人意,最后只好放弃了用E-mail发送用户反馈的打算,(啊……已经感觉到烂番茄在向我飞来了……)不过还是把这两个方法写下来,希望给大家一点启发。  方法一:直接调用Process.Start()方法。Process.Start(new ProcessStartInfo(&mailto:?subject=test&body=Dear:%0A%0DThis is a test mail.&));  这个方法会出现一个写邮件的框,当然标题和内容都已经自动填好了。  接下来,我想出一个损招——使用Windows API的GetWindow()方法获取该邮件窗口的句柄,再找到发送按钮,直接点击。  当然,实际上也不是我想出来的,自然是有别人想出来的,不过此招太损,弃之。如果有朋友对此招有兴趣,可以试试。  关于Windows API的示例代码,大家可以参考这个帖子:    可不要用这个方法编写病毒哦^0^  方法二:正规途径,但是也是走不通的途径,调用.NET Outlook API发送。  下面是步骤:1,添加引用Microsoft.Office.Interop.O  这个必须在Reference上面点右键,选添加才行,直接using会说找不到。  2,代码如下:            Microsoft.Office.Interop.Outlook.Application outlookObj = new Microsoft.Office.Interop.Outlook.Application();            MailItem Item = (Microsoft.Office.Interop.Outlook.MailItem)      outlookObj.CreateItem(Microsoft.Office.Interop.Outlook.OlItemType.olMailItem);            Item.To = &&;            Item.Subject = &hello&;            Item.Body = &hello&;            Item.Send();  但是,恼人的是,用这个方法发送的话,Outlook会产生一个对话框,提醒用户有未知的应用程序正在冒充她的名义发送邮件。另外一个方法,第一步:撰写回信。启动Outlook Express,在主窗口单击“新邮件”(或“创建邮件”工具按钮)来创建一封新邮件。然后在“新邮件”窗口选择“文件→另存为”,输入文件名并选择好保存位置,如保存为“d:\My Documents\hello.eml”。&&第二步:设置回复规则。依次单击“工具→邮件规则→邮件”选项,在“邮件规则”窗口中点击“新建”,弹出“新建邮件规则”窗口。你可以在这里选择规则条件和回复条件。&&选择规则条件:先在“选择规则条件”栏选择你需要回复邮件的条件,比如你可以选中“若‘发件人’行中包含用户”前的复选框;然后在“规则说明或规则描述”栏中单击带下划线的“包含用户”链接,再在弹出的对话框中输入该用户的E-mail并单击“添加”,或从通讯簿中选择一个E-mail,单击“确定”。&&选择回复规则:在“选择规则操作”栏中选中“使用邮件回复”前的复选框,然后在“规则说明”栏中单击“使用邮件回复”中的“邮件”链接,再在弹出的“打开”对话框中打开前面保存好的回复邮件(如“C:\My Documents\hello.eml”)。
声明:欢迎各大网站转载本站文章,还请保留一条能直接指向本站的超级链接,谢谢!
【】:阅读本文时遇到了什么问题,可以到论坛进行交流!Excel专家邮件:(大家在Excel使用中遇到什么问题,可以咨询此邮箱)。
【声明】:以上文章或资料除注明为自创或编辑整理外,均为各方收集或网友推荐所得。其中摘录的内容以共享、研究为目的,不存在任何商业考虑。如有任何异议,请与本站联系,本站确认后将立即撤下。谢谢您的支持与理解!
更多下载请到“”区查看: 3846|回复: 3|
在线时间33 小时经验49 威望0 性别保密最后登录注册时间阅读权限20UID1399654积分49帖子精华0分享0
EH初级, 积分 49, 距离下一级还需 301 积分
积分排行3000+帖子精华0微积分0
通过VB控制outlook自动发邮件时存在的问题
调用发邮件的时候outlook会提示附件所示的对话框
此问题应该如何解决,就可以实现无需手动点击即可自动连续发送的效果呢?
(14.97 KB, 下载次数: 14)
18:10 上传
下载次数: 14
在线时间33 小时经验49 威望0 性别保密最后登录注册时间阅读权限20UID1399654积分49帖子精华0分享0
EH初级, 积分 49, 距离下一级还需 301 积分
积分排行3000+帖子精华0微积分0
有啥好方法解决这个问题呢?看了一些贴 但是还不行
在线时间33 小时经验49 威望0 性别保密最后登录注册时间阅读权限20UID1399654积分49帖子精华0分享0
EH初级, 积分 49, 距离下一级还需 301 积分
积分排行3000+帖子精华0微积分0
从论坛里面下载了Outlook_Security_Manager.rar
并释放在C:\Program Files\Common Files\Outlook Security Manager
在VB的引用里面也引用了osmax.ocx 控件
但是在编译的时候还是不对
那位高手帮忙看看
问题出在啥地方了
参考是的论坛里面的代码:
Private Sub Command8_Click()
aa = Timer
Dim objOL As Object
Dim itmNewMail As Object
'引用Microsoft Outlook 物件模型
Set objOL = CreateObject(&Outlook.Application&)
DisablePrompt objOL
Set itmNewMail = objOL.CreateItem(olMailItem)
With itmNewMail
.Subject = &chijanzen Mail Test& '主旨
.Body = &认住新VB,真材实料有保证&
.Attachments.Add (&G:\VB_TEST\4\1.txt&)
.Attachments.Add (&G:\VB_TEST\4\2.txt&)
.Attachments.Add (&G:\VB_TEST\4\3.txt&)
'.Send& && && & '本文
.To = &zhaohb@& '收件者
Application.DisplayAlerts = False
objOL.Wait (Now + TimeValue(&0:00:04&))
& && &SendKeys &%s&, True
On Error GoTo continue
SendEmail:
AppActivate itmNewMail
'itmNewMail.display
SendKeys &%s&, Wait:=True
AppActivate itmNewMail
GoTo SendEmail '发送不成功誓不罢休
On Error GoTo 0
Set objOL = Nothing
Set itmNewMail = Nothing
MsgBox &共耗时& & Timer - aa & &秒&
Function DisablePrompt(ByRef object) 'http://club.excelhome.net/dispbbs.asp?boardid=22&replyid=724252&id=199798&page=1&skin=0&Star=1
& & Dim Tmp
& & Set Tmp = CreateObject(&addinexpress.outlooksecuritymanager&)
& & Tmp.ConnectTo object
& & Tmp.DisableOOMWarnings = True
& & Tmp.DisableCDOWarnings = True
& & Tmp.DisableSMAPIWarnings = True
End Function
(14 KB, 下载次数: 8)
10:20 上传
下载次数: 8
(15.84 KB, 下载次数: 4)
10:20 上传
下载次数: 4
在线时间396 小时经验42 威望0 性别男最后登录注册时间阅读权限20UID41143积分42帖子精华0分享0
EH初级, 积分 42, 距离下一级还需 308 积分
积分排行3000+帖子精华0微积分0
把outlook2003换成低版本的就可以了
关注我们,与您相约微信公众平台!
Copyright 1999 - 2017 Excel Home. All Rights Reserved.本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!
Powered by
本站特聘法律顾问:徐怀玉律师 李志群律师 &&查看: 13704|回复: 22|
在线时间33 小时经验15339 威望18 性别男最后登录注册时间阅读权限95UID54513积分16389帖子精华3分享0
积分排行20帖子精华3微积分0
本帖已被收录到知识树中,索引项:
原题目[分享]自动获取外网IP发送到指定邮箱(通过路由器)改为自动发送邮件避免Outlook的安全提示方法之二-Redemption,代码在7楼。现在做公司的兼职网管,经常想在家控制办公室的服务器,但是又没有现成的软件,只好自己想办法了。大致情况描述如下:电信ADSL 通过路由器访问网络(外网IP会不住的变动);服务器设置固定IP 192.168.10.202,开启远程访问功能;在路由器上设置DMZ区域为此IP地址192.168.10.202本来用的花生壳来实现的,在路由器的DDNS中设置免费域名等,然后用花生壳软件取得此路由器的外网IP,然后远程控制,但是经常发现链接失败的情况,特别在家没办法控制的时候,很是郁闷。后来只好试用Excel来处理,思路大致为:每隔半小时,取得路由器的外网IP地址,新建邮件并发送到指定邮箱。(条件为需设置好Outlook,并且为路由器的管理员)代码取自原先一些朋友的,这里仅供大家参考(需引用,打开VBE,工具》引用,Microsoft XML 6.0),Dim Old_time As DoubleSub hjs() '访问路由器,取得目前状态的IP地址&&& Dim httpRequest As MSXML2.XMLHTTP30&&& Dim s$, s1$, m%, n%&&& Set httpRequest = New MSXML2.XMLHTTP30&&& On Error Resume Next&&& Application.ScreenUpdating = False&&& httpRequest.Open "GET", "", False, "路由器用户名", "密码" '根据情况自己修改&&& httpRequest.send ""&&& s = httpRequest.responseText&&& m = InStr(1, s, "var wan_ip =")&&& n = InStr(m, s, ";")&&& s1 = Mid(s, m, n - m)&&& s2 = Split(s1, """")(1) '根据字符串的规律,取出具体的IP值&&& Set httpRequest = Nothing&&& SendMail "", "IP:=" & s2 & Format(Date, " yyyy-mm-dd"), "Jinsong, FYI"&&& Old_time = Now + TimeSerial(0, 0, 30) '这里设置的30秒发一次,是为了做测试用,自己根据实际情况修改&&& Application.OnTime Old_time, "sheet1.hjs"&&& Application.ScreenUpdating = FalseEnd SubSub SendMail(Email_Address$, Subject$, Body$) '发送邮件(收件人,标题,内容)&&& Dim objOL As Object&&& Dim itmNewMail As Object&&& Set objOL = CreateObject("Outlook.Application")&&& Set itmNewMail = objOL.CreateItem(olMailItem)&&& With itmNewMail&&&&&&& .Subject = Subject&&&&&&& .Body = Body&&&&&&& .To = Email_Address&&& End With&&& On Error GoTo continueSendEmail:&&& itmNewMail.display&&& DoEvents&&& DoEvents&&& DoEvents&&& SendKeys "%s", Wait:=True '打开Outlook新建的邮件,点击Alt+s发送&【第一种:采用发送键盘的按键方式Alt+S】&&& DoEvents&&& itmNewMail.display&&& GoTo SendEmail '循环判断,直到新建的邮件被发送出去continue:&&& On Error GoTo 0&&& Set objOL = Nothing&&& Set itmNewMail = NothingEnd SubPrivate Sub CommandButton1_Click() '开始程序的运行&&& Sheet1.hjsEnd SubPrivate Sub CommandButton2_Click() '取消程序的运行&&& On Error Resume Next&&& Application.OnTime Old_time, "sheet1.hjs", , False&&& MsgBox "OK, Stop."End Sub由于我知道自己路由器的密码等,所以直接取的它的密码。应该也可以去某个查询外网IP的网址取出自己的IP地址,我没试验,有兴趣的朋友看看。有什么好的方式请告诉我,我可是不希望Excel成天干活的哦,谢谢!
[此贴子已经被作者于 13:31:31编辑过]
猜你喜欢看
在线时间876 小时经验417 威望0 性别男最后登录注册时间阅读权限30UID536191积分817帖子精华0分享0
EH中级, 积分 817, 距离下一级还需 283 积分
积分排行1316帖子精华0微积分0
去下载天联VPN&& 很好用。
在线时间315 小时经验2548 威望0 性别男最后登录注册时间阅读权限70UID17464积分2698帖子精华0分享0
EH铁杆, 积分 2698, 距离下一级还需 502 积分
积分排行366帖子精华0微积分0
在线时间33 小时经验15339 威望18 性别男最后登录注册时间阅读权限95UID54513积分16389帖子精华3分享0
积分排行20帖子精华3微积分0
天联VPN是收费的,还是算了。关于这个程序,还是出现了问题。服务器没有插键盘、鼠标、显示器等,我每次登陆也是局域网内的远程控制,如果我开启链接进去之后,代码可以运行,而关闭链接之后,则不会收到邮件。代码SendKeys "%s", Wait:=True '打开Outlook新建的邮件,点击Alt+s发送而服务器本身没有键盘,则这样的操作无效,导致邮件不能发送?谁来研究下,谢谢!
[此贴子已经被作者于 15:32:11编辑过]
在线时间76 小时经验1009 威望0 性别男最后登录注册时间阅读权限30UID3426积分1009帖子精华1分享0
EH中级, 积分 1009, 距离下一级还需 91 积分
积分排行1077帖子精华1微积分0
在线时间1341 小时经验13602 威望29 性别男最后登录注册时间阅读权限100UID20291积分15652帖子精华1分享0
管理以下版块
积分排行23帖子精华1微积分0
龙兄试试VNC(Virtual Network Computing)以前是免费软件,不知道现在是否仍然免费
Windows7 + Office 2010
在线时间33 小时经验15339 威望18 性别男最后登录注册时间阅读权限95UID54513积分16389帖子精华3分享0
积分排行20帖子精华3微积分0
通过Outlook的复制品来直接send邮件,避免安全信息提示。需安装Redemption.dll,并在excel VBE中引用它(下载地址,我下载的是第一个)发送邮件代码如下:(先新建邮件,保存在草稿箱中,然后用复制品替代草稿箱中的文件,发送)Sub SendMail(Email_Address$, Subject$, Body$, Attachment$) '发送邮件(收件人,标题,内容,附件)&&& Dim ObjOL As Object, itmNewMail As Object, itmNewMail_Copy As Object&&& Dim olNS As Object, dfrFdr As Object&&& &&& Set ObjOL = CreateObject("Outlook.Application")&&& Set itmNewMail = ObjOL.CreateItem(olMailItem)&&& Set itmNewMail_Copy = CreateObject("Redemption.SafeMailItem")&&& Set olNS = ObjOL.GetNameSpace("MAPI") '获取Namespace&&& Set dftFdr = olNS.GetDefaultFolder(16) '获取草稿箱接口&&&&&&& &&& With itmNewMail&&&&&&& .Subject = Subject&&&&&&& .Body = Body&&&&&&& .To = Email_Address&&&&&&& '.Attachments.Add Attachment&&&&&&& .Save&&& End With&&&&&&& &&& For I = 1 To dftFdr.Items.Count '遍历文件夹下面的所有Item,把草稿箱里的文件直接发送&&&&&&& itmNewMail_Copy.Item = dftFdr.Items.Item(I)&&&&&&& If InStr(1, itmNewMail.Subject, "IP:=") & 0 Then&&&&&&&&&&& itmNewMail_Copy.send '【第二种,采用Outlook的复制品方式】&&&&&&& End If&&& Next&&&&&&& &&& Set ObjOL = Nothing&&& Set itmNewMail = Nothing&&& Set itmNewMail_Copy = Nothing&&& Set olNS = Nothing&&& Set dfrFdr = NothingEnd Sub建议有兴趣的朋友帮忙测试下,然后反馈你们的信息,谢谢!
[此贴子已经被作者于 13:32:36编辑过]
在线时间33 小时经验15339 威望18 性别男最后登录注册时间阅读权限95UID54513积分16389帖子精华3分享0
积分排行20帖子精华3微积分0
由于所有的代码都可以不通过Excel,故最终把代码放到了Outlook里执行,对于Ontime在outlook里不能运行,故采用了API函数settimer来处理,参考,(同样在Outlook里应引用XML6.0和Redemption)Thisoutlooksession里代码:Private Sub Application_Startup()&&& hjs&&& MsgBox "OK, Run.&&& -Long_III"End SubPrivate Sub Application_Quit()&&& Stop_hjsEnd Sub模块里代码:Private Declare Function SetTimer Lib "user32" (ByVal hwnd As Long, ByVal nIDEvent As Long, ByVal uElaspe As Long, ByVal lpTimerFunc As Long) As LongPrivate Declare Function KillTimer Lib "user32" (ByVal hwnd As Long, ByVal nIDEvent As Long) As LongDim TIDConst SendTime As Double = 30 '设置发送邮件的间隔时间,这里以30分钟发一次为例Sub hjs() '访问路由器,取得目前状态的IP地址&&& Dim httpRequest As MSXML2.XMLHTTP30&&& Dim s$, s1$, m%, n%&&& Set httpRequest = New MSXML2.XMLHTTP30&&& httpRequest.Open "GET", "", False, "Admin", "xxxxxx"&&& httpRequest.Send ""&&& s = httpRequest.responseText&&& m = InStr(1, s, "var wan_ip =")&&& n = InStr(m, s, ";")&&& s1 = Mid(s, m, n - m)&&& s2 = Split(s1, """")(1) '根据字符串的规律,取出具体的IP值&&& Set httpRequest = Nothing&&& SendMail "", "IP:=" & s2 & Format(Date, " yyyy-mm-dd"), "Jinsong, FYI", ""&&&& KillTimer 0, TID&&& TID = SetTimer(0, 0, SendTime * 60 * 1000, AddressOf hjs) '到时间重复执行此程序End SubSub SendMail(Email_Address$, Subject$, Body$, Attachment$) '发送邮件(收件人,标题,内容,附件)&&& Dim ObjOL As Object, itmNewMail As Object, itmNewMail_Copy As Object&&& Dim olNS As Object, dfrFdr As Object&&& &&& Set ObjOL = CreateObject("Outlook.Application")&&& Set itmNewMail = ObjOL.CreateItem(olMailItem)&&& Set itmNewMail_Copy = CreateObject("Redemption.SafeMailItem")&&& Set olNS = ObjOL.GetNamespace("MAPI") '获取Namespace&&& Set dftFdr = olNS.GetDefaultFolder(16) '获取草稿箱接口&&& With itmNewMail&&&&&&& .Subject = Subject&&&&&&& .Body = Body&&&&&&& .To = Email_Address&&&&&&& .Save&&& End With&&& For I = 1 To dftFdr.Items.Count '遍历文件夹下面的所有Item,把草稿箱里的文件直接发送&&&&&&& itmNewMail_Copy.Item = dftFdr.Items.Item(I)&&&&&&& If InStr(1, itmNewMail.Subject, "IP:=") & 0 Then&&&&&&&&&&& itmNewMail_Copy.Send&&&&&&& End If&&& Next&&& Set ObjOL = Nothing&&& Set itmNewMail = Nothing&&& Set itmNewMail_Copy = Nothing&&& Set olNS = Nothing&&& Set dfrFdr = NothingEnd SubSub Stop_hjs() '取消程序的运行&&& KillTimer 0, TID&&& MsgBox "OK, Stop.&& -Long_III"End Sub所有代码来源于网络,仅供学习使用。
[此贴子已经被作者于 18:33:02编辑过]
在线时间89 小时经验1292 威望0 性别男最后登录注册时间阅读权限50UID484433积分1292帖子精华0分享0
EH高级, 积分 1292, 距离下一级还需 708 积分
积分排行821帖子精华0微积分0
学习了,谢谢分享!
在线时间33 小时经验15339 威望18 性别男最后登录注册时间阅读权限95UID54513积分16389帖子精华3分享0
积分排行20帖子精华3微积分0
继续测试中……之前发现代码settimer之后程序运行时最好能KillTimer之后然后再用set,否则会出现同时发送多封邮件的情况。现在的代码在每分钟发送的情况先正常运行(连续9封都是隔一分钟一次)。
积分≥4700即可申请
优秀会员奖章No.1
优秀会员奖章No.2
关注我们,与您相约微信公众平台!
Copyright 1999 - 2017 Excel Home. All Rights Reserved.本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!
Powered by
本站特聘法律顾问:徐怀玉律师 李志群律师 &&

我要回帖

更多关于 excel表格手动换行 的文章

 

随机推荐