我正在尝试将 swiftmailer 实施到这个邮件系统中。我的客户有大约 30 万封活动电子邮件需要半定期发送。该系统最初是为 sendmail 和 php 的 mail() 函数配置的。我已经安装了最新版本的 postfix。
可能是我的期望太高了,但我的印象是这个东西可以快速将大量电子邮件放入队列中,这正是我所需要的。所有的速率处理和节流都是在 postfix 端完成的,所以能够以我的 postfix 设置可以处理的速度将它们排队会很棒。
虽然我可以实现将联系人直接插入队列的方法,但我宁愿根据各种选项(例如 smtp 服务器的全局发送速率)来限制进入队列的电子邮件的输入。
下面的代码只是一些基本的测试。它遍历 30 个单独的邮件 smtp 帐户,每个帐户都有自己的费率属性。我正在尝试从每个 cron 的数据库中提取最大数量的电子邮件,然后发送然后全部使用batchsend(),然后循环到下一个 smtp 帐户,发送最大值等。
从技术上讲它确实有效,但是它真的很慢。以每个 smtp 帐户 60/分钟的速度,每个大约需要 15-20 秒,这显然不起作用,而且完全不是我所期望的。
为什么这会发送这么慢有什么很明显的吗?smtp 服务器似乎很好,没有过载或类似的情况。没有后缀错误,没有什么明显的。
一旦电子邮件进入队列,我就让 postfix 工作,这很神奇。以合理的速度将其放入队列变得困难。我知道 swiftmailer 是解决我所有问题的神奇解决方案,但我确信它的发送速度应该比现在更快。有什么想法或建议吗?
$query = "SELECT * FROM `smtp`";
$result = mysql_query($query) or die(mysql_error());
$num_rows1 = mysql_num_rows($result);
while($row = mysql_fetch_array($result)){
$smtp = $row['ip'];
$login = $row['user'];
$pass = $row['pass'];
$smtp_domain = $row['domain'];
$querya = "SELECT * FROM `mailer_lists` ml …Run Code Online (Sandbox Code Playgroud) 我正在尝试为特定的电子邮件地址设置管道。我正在关注我在这里看到的内容,但是在newaliases我得到以下内容之后:
postalias: warning: /etc/postfix/aliases, line 1: name must be local
Run Code Online (Sandbox Code Playgroud)
我的/etc/postfix/aliases:
pipe@example.com: "| /usr/bin/php -q /home/path/to/file/pipe.php"
Run Code Online (Sandbox Code Playgroud)
当我尝试发送电子邮件时,它会返回可交付成果。我究竟做错了什么?
我正在尝试设置一个别名来为 Postfix 中的命令传输传入邮件。所以我的里面有这样的东西/etc/aliases:
myuser: "|/usr/bin/command --parameter1 --parameter2"
Run Code Online (Sandbox Code Playgroud)
问题是 Postfix/usr/bin/command以 user 身份执行nobody:nogroup。根据此描述,它可以更改,但不能更改单个别名。那么问题来了,如何给用户设置某个别名呢?设置nobody:nogroup目录/usr/bin/command应该运行不是一个选项。
两者有区别吗?他们执行相同的任务吗?
我有点困惑,因为我对电子邮件服务器不太熟悉,但我正在尝试构建一个主要用于发送事务电子邮件的服务器,Java并且关于Apache James. 目前我确实可以正常运行它,但是我在DKIM正常使用它时遇到了问题,这种挫败感让我考虑进行更改。
那么……Postfix合适的Apache James替代品吗?Postfix除了从 发送电子邮件之外,我还需要其他什么吗Java?
Dovecot 支持mbox和maildir格式来存储电子邮件。我搜索了它的文档以将所有电子邮件存储在MySQL数据库中,但我找不到它。
是否可以告诉 dovecot 将所有传出和传入的电子邮件存储在数据库中?
在数据库中存储电子邮件确实可以非常灵活地搜索电子邮件中的关键作品等。
GMAIL如何存储其电子邮件?它是基于maildir格式吗?
我在使用 postfix 时遇到了一个反复出现的问题(在 Debian Squeeze 上,还安装了 amavisd-new 和 failure2ban):突然之间,通常是在晚上(但并非总是如此),邮件停止投递并且队列已满。日志显示了一堆这种风格的条目:
May 18 19:54:16 ks4000003 postfix/error[6889]: 376352016039: to=<info@xxxxxxx>, relay=none, delay=0.62, delays=0.58/0.01/0/0.04, dsn=4.4.1, status=deferred (delivery temporarily suspended: connect to 127.0.0.1[127.0.0.1]:10024: Connection refused)
Run Code Online (Sandbox Code Playgroud)
一旦我重新启动服务器,它就会工作(并且队列全部被清除)。直到下次(通常每 1-2 周一次,但最近每天早上我都必须重新启动服务器)之前,它仍然没有任何问题。
对此的任何想法将不胜感激。我应该提到我确实是服务器管理方面的新手;我在 google/stackoverflow 上搜索了类似的问题,但找不到真正类似的问题。
我的后缀配置:
alias_database = hash:/etc/aliases
alias_maps = hash:/etc/aliases
always_add_missing_headers = yes
append_dot_mydomain = no
biff = no
body_checks = regexp:/etc/postfix/body_checks
broken_sasl_auth_clients = yes
config_directory = /etc/postfix
content_filter = amavis:[127.0.0.1]:10024
header_checks = regexp:/etc/postfix/header_checks
html_directory = /usr/share/doc/postfix/html
inet_interfaces = all
mailbox_size_limit = 0
message_size_limit = 0
mime_header_checks = …Run Code Online (Sandbox Code Playgroud) 我正在尝试为我的 postfix 安装设置 ftw.mail。因为我是 Linux 和 Python 的新手,所以我真的不知道它是正确的,朝着正确的方向前进还是垃圾。
从官方文档中我发现了这一点:
- 将 ftw.mail 添加到您的构建配置中:
[实例]
鸡蛋 +=
ftw.mail- 安装通用设置导入配置文件。
(来源:https : //github.com/4teamwork/ftw.mail/blob/master/README.rst)
我的第一个问题是:“/etc/postfix/”是所谓的“构建配置”吗?
其次,我在如何构建这个我尝试过的“鸡蛋”方面遇到了困难:
$ wget https://bootstrap.pypa.io/ez_setup.py -O - | sudo python for ez_setup
Run Code Online (Sandbox Code Playgroud)
然后:
$ sudo apt-get install python-setuptools
Run Code Online (Sandbox Code Playgroud)
并完成:
$ sudo easy_install ftw.mail
Run Code Online (Sandbox Code Playgroud)
在控制台上我被告知,鸡蛋在那里:
/usr/local/lib/python2.7/dist-packages/ftw.mail-2.3.1-py2.7.egg
我找到了它,我读到我必须从以下内容开始:
$ PYTHONPATH=/usr/local/lib/python2.7/dist-packages/cssutils-1.0-py2.7.egg
Run Code Online (Sandbox Code Playgroud)
基本上什么也没做。现在的问题是:我如何安装鸡蛋?
总结我的问题:
我需要从桌面上的 Node.js 通过远程 Postfix/Dovecot SASL 服务发送电子邮件。
当我使用 Thunderbird 发送电子邮件时,它可以工作并且 Postfix 服务器日志显示
Anonymous TLS connection established from unknown[dh.cp.ip.ip]: TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)
但不是通过 nodemailer,Postfix 服务器在其中记录:
Nov 26 22:02:31 servicelabel postfix/submission/smtpd[27019]: connect from unknown[dh.cp.ip.ip]
Nov 26 22:02:31 servicelabel postfix/submission/smtpd[27019]: lost connection after CONNECT from unknown[dh.cp.ip.ip]
Nov 26 22:02:31 servicelabel postfix/submission/smtpd[27019]: disconnect from unknown[dh.cp.ip.ip] commands=0/0
Run Code Online (Sandbox Code Playgroud)
这些相同的设置用于 Nodemailer 传输和 Thunderbird
let transporter = nodemailer.createTransport(
{
host: "mx.example.com",
port: 587,
secure: false, // use TLS
// requireTLS:true,
auth: {
user: "emailuser",
pass: "password" …Run Code Online (Sandbox Code Playgroud) 我已经使用 Backports 在 Debian Stretch 中将我的 Postfix 邮件系统从 opendkim 升级到 dkimpy,因为我正在尝试实现 ARC 签名和验证。到目前为止,我能够让 dkimpy 工作,因为对入站邮件进行了 DKIM 验证,但无法让 DKIM 签名工作,并且在 dkimpy 中几乎没有发现有关 ARC 的信息/文档。任何帮助,将不胜感激。我的配置如下。
# /etc/postfix/master.cf
smtp inet n - y - - smtpd
-o smtpd_milters=inet:localhost:8892
-o milter_macro_daemon_name=VERIFYING
submission inet n - y - - smtpd
-o syslog_name=postfix/submission
-o smtpd_tls_security_level=encrypt
-o smtpd_sasl_auth_enable=yes
-o smtpd_milters=inet:localhost:8892
-o non_smtpd_milters=inet:localhost:8892
-o milter_macro_daemon_name=ORIGINATING
# /etc/dkimpy-milter.conf
Domain *
KeyFile /etc/pki/dkim/alpha.private
Selector alpha
Canonicalization relaxed/simple
Mode sv
Socket inet:8892@localhost
PidFile /var/run/dkimpy-milter/dkimpy-milter.pid
UserID dkimpy-milter
MacroList daemon_name|ORIGINATING
MacroListVerify daemon_name|VERIFYING
Run Code Online (Sandbox Code Playgroud) 我在本地 iMac 上运行 Xcode Server Bots,但未发送电子邮件通知。
我已经学习了很多教程,并进行了postfix设置和工作。我可以使用命令成功发送电子邮件
sudo echo "Test sending email from Postfix" | mail -s "Test Postfix" xxxxxx@me.com
Run Code Online (Sandbox Code Playgroud)
收到了我的电子邮件。
在Xcode> Preferences> Server & Bots> 下,Mail我按照所有教程将所有内容留空。
对于我的 Bot,在Triggers我下面有一个Periodic Email ReportwithSchedule设置After each integration和设置我的from,reply-to和To字段,并且每个都Notify On打勾。
我使用命令监视smtp和smtp处理
sudo log stream --predicate '(process == "smtpd") || (process == "smtp")' --info
Run Code Online (Sandbox Code Playgroud)
当我使用上述测试发送电子邮件时,我会看到一条日志行。
但是,当我的 Xcode Bot 完成时,我什么也没有得到。Bot …
postfix-mta ×10
email ×5
dovecot ×2
linux ×2
php ×2
pipe ×2
alias ×1
debian ×1
dkim ×1
egg ×1
gmail ×1
james ×1
java ×1
milter ×1
node.js ×1
nodemailer ×1
openssl ×1
permissions ×1
python ×1
storage ×1
swiftmailer ×1
xcode ×1
xcode-bots ×1
xcode-server ×1