我们的办公室使用2台IMAP服务器发送电子邮件,其中一台是传入服务器并保存最近的电子邮件,另一台是存档服务器。我们主要使用Outlook 2010,当前的过程是定期将已发送的邮件从传入服务器拖动到存档中。
今天,我被要求研究编写脚本,该脚本将定期(可能使用crontab)捕获所有已发送的消息并将其移动到存档中。
我研究了一些SSL或telnet实例来访问服务器并四处摸索。但是我不知道编写此脚本或如何在IMAP环境中跨服务器移动文件的最佳方法。
做到这一点的最佳方法是什么?我宁愿仅从舒适度的角度使用Python,但是如果已经存在另一种语言的解决方案,我可以解决。
更新:
好的,这是一些代码。当前,它可以很好地复制消息,但是,它将复制存档服务器上的现有消息。
import imaplib
import sys
#copy from
f_server = 'some.secret.ip.address'
f_username = 'j@example.com'
f_password = 'password'
f_box_name = 'Sent Messages'
#copy to
t_server = 'archive.server.i.p'
t_username = 'username'
t_password = 'password'
t_box_name = 'test'
To = imaplib.IMAP4(t_server)
To.login(t_username, t_password)
print 'Logged into mail server'
From = imaplib.IMAP4(f_server)
From.login(f_username, f_password)
print 'Logged into archive'
From.select(f_box_name) #open box which will have its contents copied
print 'Fetching messages...'
typ, data = From.search(None, 'ALL') #get all messages in …Run Code Online (Sandbox Code Playgroud) 我希望能够运行EC2实例(基于CentOS LAMP)作为邮件服务器,并在用户注册时为用户创建电子邮件地址,以便他们可以通过电子邮件上传文件.将解析电子邮件并处理附加文件并将其添加到S3以进行存储.
这可行吗?
我需要什么邮件包呢?我希望能够创建电子邮件地址,例如username@uploads.domainname.com
我的域名指向不在亚马逊网络服务上的网络服务器,所以我意识到这可能是不可能的.
从哪里开始,有什么好的资源可以在EC2上设置邮件服务器
非常感谢
我正在构建一个Web服务器来托管多个网站.除了邮件服务器,我得到了一切.我正在使用linode来托管我的vps而且我一直在关注他们的教程.仅供参考,我使用的是Ubuntu 11.10.
这是我一直关注的链接,http://library.linode.com/email/postfix/dovecot-mysql-ubuntu-10.04-lucid.我到达了它告诉我重新启动dovecot的部分,所以我尝试了"service dovecot restart".但后来我得到了这个"重启:未知实例:".我以root身份登录,所以我没有使用sudo.
由于那不起作用,我尝试了"/etc/init.d/dovecot restart",我得到"dovecot开始/运行,过程4760".所以我尝试"/etc/init.d/dovecot status",我得到"dovecot停止/等待".
所以我尝试了"服务dovecot开始",我得到"dovecot开始/运行,过程4781".所以我试图获得状态,所以我厌倦了"服务dovecot状态"并得到"dovecot停止/等待"
然后我累了"/etc/init.d/dovecot start",我得到"dovecot开始/运行,进程4794".所以我厌倦了获得状态,所以我累了"/etc/init.d/dovecot status"并得到了"dovecot停止/等待"
只是为了踢和笑,我厌倦了杀死这个过程,我使用了当我做"服务dovecot开始"时得到的PID,这是命令"kill -9 4444",我得到这个"bash:kill:(4805) - 没有这样的过程"
难道我做错了什么?
--EDIT 1--
以下是在/ var/log/syslog中找到的涉及dovecot的日志
dovecot: master: Dovecot v2.0.13 starting up (core dumps disabled)
dovecot: ssl-params: Generating SSL parameters
dovecot: ssl-params: SSL parameters regeneration completed
dovecot: master: Warning: Killed with signal 15 (by pid=1 uid=0 code=kill)
dovecot: config: Warning: Killed with signal 15 (by pid=1 uid=0 code=kill)
dovecot: anvil: Warning: Killed with signal 15 (by pid=1 uid=0 code=kill)
dovecot: log: Warning: …Run Code Online (Sandbox Code Playgroud) 我最近使用 zpanel (带有dovecot和格式)为我的域设置邮件服务器Maildir,并在此处创建了一个用户电子邮件帐户user@my-domain.com。
这里所有的电子邮件都存储在服务器/var/zpanel/vmail/路径下的以下树中
my-domain.com
|--> cur/
| ------
|--> new/
| ------
|--> tmp/
------
Run Code Online (Sandbox Code Playgroud)
我有来自旧服务器的所有用户电子邮件(格式与上面相同)。我的域的电子邮件服务器my-domain.com之前托管在哪里。
问题是,我在新服务器上已经有几封用户电子邮件,我想合并两者,以便它显示我从新电子邮件服务器和旧电子邮件服务器发送的所有电子邮件。
有什么办法可以合并这两个maildirs吗?
我正在尝试使用mailtrap.io实际测试发送电子邮件,并且我按照指示设置了电子邮件服务器,但是,当我尝试执行以下操作时:
form = InterestedForm(request.POST)
if form.is_valid():
name = form.cleaned_data['name']
email = form.cleaned_data['email']
subject = "Index form: Interested in Ucodon"
message = 'Name: ' + name + '\n' + 'Email: ' + email
recipients=['test@gmail.com']
send_mail(subject, message, recipients, fail_silently=False)
thanks = True
Run Code Online (Sandbox Code Playgroud)
我收到以下错误:
TypeError: send_mail() takes at least 4 arguments (4 given)
Run Code Online (Sandbox Code Playgroud)
我什至尝试过以下方法:
send_mail(subject=subject, message=message, recipients=recipients, fail_silently=False)
Run Code Online (Sandbox Code Playgroud)
另外,我已经定义了 EMAIL_HOST_USER。我目前正在使用 EMAIL_HOST='mailtrap.io'。
我想用aiosmtpd在 python 中编写我自己的小型邮件服务器应用程序
a) 出于教育目的以更好地理解邮件服务器
b) 实现我自己的功能
所以我的问题是,Mail-Transfer-Agent缺少什么(除了 aiosmtpd),它可以向/从其他完整的 MTA(gmail.com、yahoo.com ...)发送和接收电子邮件?
我正在猜测:
1.) 当然是域和静态 ip
2.)该域的有效证书
...应该可以使用 Lets Encrypt
3.)加密
...应该可以使用 SSL/Context/Starttls...使用 aiosmtpd 本身
4 .)解析外发电子邮件的 MX DNS 条目!?
...应该可以使用 python 库 dnspython
5.)错误处理 SMTP 通信错误、来自其他 MTA 的错误回复、弹跳!?
6.)处理入站和待处理出站电子邮件的队列!?
是否缺少其他“基本”功能?
我当然知道,邮件服务器还有更多“高级”功能,例如垃圾邮件检查、恶意软件检查、证书验证、黑名单、规则、邮箱等等......
感谢所有提示!
编辑:
让我澄清一下我的想法:
我想为俱乐部编写一个邮件服务器。它的主要目的将是一个邮件列表服务器。俱乐部的不同团体会有不同的名单。假设我的域名是myclub.org那么就会有例如Youth@myclub.org、trainer@myclub.org等等。
只有会员才能使用此邮件服务器,并且只有会员才能收到来自此邮件服务器的电子邮件。不允许其他人向该邮件服务器发送电子邮件,也不会接收来自该服务器的电子邮件。成员电子邮件地址及其组存储在数据库中。
将来我想集成一些其他有用的功能,例如:
我不需要的东西:
打开中继问题:
我需要用JavaMail发送简单的html消息.当我试图在互联网上找到一些有解释的好例子时,每个下一个例子都让我更生气和愤怒.
所有这些愚蠢的例子都包含复制和粘贴的Java代码,这些代码仅在注释和一个不错的免责声明中有所不同,首先应该配置你的smtp和pop3服务器.
我知道没有人想为某些具体产品做广告,但配置服务器是最难的部分.那么,任何人都可以给我一些关于配置具体服务器(例如Kerio,或任何其他服务器)的非常有用的信息(没有java代码)吗?
我现在拥有的是下一个例外:
250 2.0.0 Reset state
javax.mail.SendFailedException: Invalid Addresses;
nested exception is:
com.sun.mail.smtp.SMTPAddressFailedException: 550 5.7.1 Relaying to <mymail@mycompany.com> denied (authentication required)
Run Code Online (Sandbox Code Playgroud)
UPD.所有以前的文本的简单重新制定是:想象你有Windows,jdk,没有别的.你想制作java程序并在你的机器上运行它.而这个程序应该发送"Hello world!" 到你的Gmail帐户.列出你的步骤.
UPD2.这是代码:
Properties props = new Properties ();
props.setProperty ("mail.transport.protocol", "smtp");
props.setProperty ("mail.host", "smtp.gmail.com");
props.setProperty ("mail.user", "my_real_address_1@gmail.com");
props.setProperty ("mail.password", "password_from_email_above");
Session mailSession = Session.getDefaultInstance (props, null);
mailSession.setDebug (true);
Transport transport = mailSession.getTransport ();
MimeMessage message = new MimeMessage (mailSession);
message.setSubject ("HTML mail with images");
message.setFrom (new InternetAddress ("my_real_address_1@gmail.com"));
message.setContent ("<h1>Hello world</h1>", "text/html");
message.addRecipient (Message.RecipientType.TO,
new …Run Code Online (Sandbox Code Playgroud) 我正在处理的类似论坛的应用程序会在收到新的回复时向线程启动器发送电子邮件通知.如果所有者可以回复电子邮件以向线程添加新回复,那将是很好的.
如何实现该功能,即"回复此电子邮件评论",如Facebook?
选项A:扫描主题行/正文?如果用户错误地修改了主题行,我不喜欢它吗?
选项B:使用链接到线程ID的唯一回复电子邮件地址.这是邮件服务器的常用功能吗?喜欢设置一个*@addComment.domain.com?或者,在发送带有回复的电子邮件之前,应用服务器是否需要设置新的电子邮件帐户?
还有其他选择吗?
谢谢!
我知道这可能是一个虚假的问题或来自知识湖的问题,但我希望有人仍然可以回答它.我确实尝试阅读了很多postfix文档,但没有找到答案.我甚至不知道它是一个特定于postfix或邮件服务器的一般问题.
所以我有一个邮件服务器,只是一个干净的postfix安装,提供电子邮件.iv'e定义了我的用户并使用thunderbird与IMAP和SMTP连接.
当我去thunderbird帐户设置并禁用"放置副本"时,postfix没有在用户.Sent文件夹中放置已发送邮件的副本.
然而,iv'e还连接了我的gmail,hotmail或yahoo邮件,并且在"发送副本"中删除并且仍然在已发送的项目文件夹中有副本.
所以在这种情况下有2个选项:
提前致谢
mail-server ×10
email ×4
imap ×2
java ×2
linux ×2
python ×2
aiosmtpd ×1
amazon-ec2 ×1
centos6 ×1
coldfusion ×1
django ×1
dovecot ×1
forum ×1
imaplib ×1
jakarta-mail ×1
lamp ×1
maildir ×1
postfix-mta ×1
ubuntu ×1
ubuntu-11.04 ×1
upload ×1