我不知道去哪里查看引用资料才能完成此任务;我已经尝试了几次代码迭代,但每次都失败了。略有编辑,但足以了解要点...
// Make connection
imConnection, err := imap.DialTLS(strAddress, nil)
// Defer disconnect
defer func(){
imConnection.Logout(30*time.Second)
}
// Authenticate
imConnection.Login(strUname, strPass)
//Select the folder with messages I want to move
imConnection.Select(`[Gmail]\Movethese`, false)
// Create a set
set, _ = imap.NewSeqSet("1:*")
// It's my understanding that moving messages means copying them over, then
// deleting the original messages?
cmd, _ := imConnection.UIDCopy(set, `[Gmail]\Destination`)
这似乎默默地失败了。这对我来说看起来应该选择“Movethese”文件夹中的所有内容并将它们复制到“Destination”。我在正确复制它们时缺少什么?是否有一种简单的方法来移动与特定主题行字符串匹配的个别邮件?
此外,我不确定在选择时是否必须将源目录设置为 False for R/W,但这似乎没有什么不同。
最佳答案
尝试为命名邮箱的两个命令添加错误检查;反斜杠是源代码中的一个特殊字符,所以我预计 gmail 会给你一个错误,例如 No such mailbox: [Gmail]Movethese。
处理错误通常是个好主意,尤其是在这种情况下,当您知道某处有错误时。
顺便说一句,复制/删除顺序有点过时。大多数 IMAP 服务器支持 UID MOVE如今作为原子命令,IIRC gmail 是支持者之一。不过现在无法检查,所以请不要相信我。
关于戈朗 IMAP : moving messages to another folder,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32615313/
使用以下ruby代码,我可以通过IMAP阅读收件箱中用户的邮件:require'net/imap'imap=Net::IMAP.new('imap.gmail.com',993,true)imap.login('user','passwd')imap.select('INBOX')mailIds=imap.search(['ALL'])mailIds.eachdo|id|msg=imap.fetch(id,'RFC822')[0].attr['RFC822']putsmsgendimap.logout()imap.disconnect()我想知道如何存档和标记已读电子邮件。我想将电
我有一个在本地Intranet上运行的Rails应用程序,有1000个常规用户。我希望将它与我们的电子邮件服务器(MSExchange)集成。基本上-1)对于每个用户,应用程序应从邮件服务器获取其收件箱中的所有新邮件,对其进行解析,并将其归档到数据库中。我可以用ruby/net-imap实现它,但我担心性能。正如我所提到的,有一千个用户,每个用户都有不同的电子邮件地址。每x分钟轮询一次电子邮件服务器对于一千个用户来说会大大降低性能。看起来像IMAPIDLEwithruby/net-imap可能是一个选项,只要有新邮件(iPhone/Outlook样式),邮件服务器就会向我的应用程序
好吧,几个小时以来我一直很厌烦它。我以为ruby1.9的net/imap.rb支持空闲命令,但现在还没有。谁能帮我实现它?来自here,我认为这可行:classNet::IMAPdefidlecmd="IDLE"synchronizedotag=generate_tagput_string(tag+""+cmd)put_string(CRLF)endenddefdonecmd="DONE"synchronizedoput_string(cmd)put_string(CRLF)endendend但是imap.idle只返回nil。 最佳答案
我正在使用RubyIMAP库来获取GMail对话。GMail线程对话的方式是通过“Message-ID”和“In-Reply-To”邮件header。例如:In-Reply-To:Message-ID:我不知道如何有效地获取回复消息。当前方式:target=imap.search(["NOT","DELETED"]).eachdo|msg_id|uid=imap.fetch(message_id,"ENVELOPE")[0].attr["ENVELOPE"].message_idifuid==targetm=imap.fetch(msg_id,"RFC822")[0].attr["RF
可能是我今天脑子坏了,突然想不出怎么用ruby的net/imap库来阅读邮件了。我已经花了好几个小时了。我在谷歌中输入了“rubyimapreadbody”的几种变体,并浏览了许多网站。它们都有关于如何提取附件、同步电子邮件服务器、使用gmail等的示例……有些(如chilkat)实际上是为您执行此操作的共享软件库。我查看了net/imap文档,虽然有几个示例可以完成除阅读正文之外的所有操作。我以前使用过net/imap,但我只需要将收件箱中的附件下载到目录中。我在#ruby和#rubyonrails中询问都无济于事——没人能弄明白。imap=Net::IMAP.new('mail.x
我试图在Ruby中使用Net::IMAP来搜索我发送的所有邮件,但我无法选择收件箱以外的任何内容。imap.select('INBOX')工作正常,但是imap.select('Mail/sent-mail')如Net::IMAP文档所示,显示“未知邮箱”。顺便说一句,这是与gmail一起使用的。我还尝试将“in”、“anywhere”添加到我的imap.search()中,但没有解析。当前代码:imap.select('INBOX')now=Time.now.localtime-1209600#twoweekssince=now.day.to_s()+"-"+Date::MONTHN
我正在使用node-imap我找不到一个简单的代码示例来说明如何从使用node-imap获取的电子邮件中保存附件使用fs到磁盘。我已经阅读了几次文档。在我看来,我应该引用邮件的特定部分作为附件进行另一次提取。我从基本示例开始:varImap=require('imap'),inspect=require('util').inspect;varimap=newImap({user:'mygmailname@gmail.com',password:'mygmailpassword',host:'imap.gmail.com',port:993,tls:true});functionopen
关闭。这个问题需要更多focused.它目前不接受答案。想改进这个问题吗?更新问题,使其只关注一个问题editingthispost.关闭3年前。Improvethisquestion告诉我如何使用Golang登录网站。下载xls文件是得到了,但是为了在Excel表格中有数据,需要登录网站。该站点位于公司的服务器上。如果你能告诉你怎么做。例如,我用来执行此操作的VBA代码。SetoFields=CreateObject("Scripting.Dictionary")WithoFields.Add"login","sdiscor".Add"password","sdiscor"EndWi
下面是我查询的代码:我有一个单维数组a当我打印a[0][0]时,我不明白为什么它返回字符a的ascii值:packagemainimport("fmt")funcmain(){a:=[3]string{"a","b","c"}fmt.Println(a[0][0])}输出:97 最佳答案 下面是如何打印ascii的代码示例a:=[3]string{"a","b","c"}for_,rune:=rangea{fmt.Println(rune)//Itwillprinta,b,c}因为你在你的代码中使用了[0][0],所以它是等价的fo
typepath[]bytefunc(ppath)ToUpper(){fori,b:=rangep{if'a'在上面(这个例子是从“TheGoBlog”复制过来的),如果ToUpper变成这样:func(ppath)ToUpper(){fori,_:=rangep{if'a'哪个会更有效率为什么?“TheGoBlog”对前一个说:“这里的ToUpper方法在forrange构造中使用两个变量来捕获索引和slice元素。这种形式的循环避免了在主体中多次写入p[i]。”什么意思? 最佳答案 前者有更多的内存操作,即在b上:它在循环的第一