我们在 Windows 上使用 Bitnami Redmine 运行 Redmine 4.0.4 并尝试实现传入电子邮件功能。
我们的目标是根据电子邮件发件人将问题创建到不同的项目中。
例子 :
[email protected]
发送的电子邮件[email protected]
应该会在一个名为 biometal 的项目中产生一个问题[email protected]
发送的电子邮件[email protected]
应该会在名为 tradmax 的项目中产生一个问题...
考虑到电子邮件发件人与各自项目中的用户相匹配,我们尝试运行多个命令(每个项目一个),如下所示:
bundle exec rake -f C:\Bitnami\redmine-4.0.4-3/apps/redmine/htdocs/Rakefile redmine:email:receive_imap RAILS_ENV="production" host="myhost" port="993" ssl="1" username="myuser" password="mypassword" move_on_success="inbox/REDMINE/SUCCESS" project="biometal" tracker="Support" status="New"
bundle exec rake -f C:\Bitnami\redmine-4.0.4-3/apps/redmine/htdocs/Rakefile redmine:email:receive_imap RAILS_ENV="production" host="myhost" port="993" ssl="1" username="myuser" password="mypassword" move_on_success="inbox/REDMINE/SUCCESS" project="tradmax" tracker="Support" status="New"
我们的问题是,当执行第一个命令时,所有收到的电子邮件都被标记为已读(即使来自不在目标项目中的用户的电子邮件)。
因此,当执行下一个命令时,不再检测到项目附加的发件人的电子邮件,也不会产生任何问题。
有人知道如何让事情运转起来吗?
谢谢!Fred
答案1
使用邮件服务器的过滤功能根据发件人的地址将邮件分类到不同的文件夹中(例如来自 *@biometal.com → INBOX/Redmine/biometal),然后让每个 Redmine 导入任务在其自己的文件夹中查找,而不是使用主 INBOX。
这可能不是理想的方法,因为它需要在邮件服务器上进行额外的配置,但无论如何它都应该完成工作。
答案2
感谢grawity的建议,我终于找到了诀窍,我必须修改文件imap.rb才能强制将电子邮件标记为未读。
只需在“imap.uid_search(['NOT', 'SEEN']).each”循环末尾添加“imap.uid_store(uid, "-FLAGS", [:Seen])”即可完成此操作:imap.rb 文件修改
不确定这是否是最好的解决方案,但它满足我们的需要。