将电子邮件帐户添加到 postfix

将电子邮件帐户添加到 postfix

我在 Linux 中添加了一个名为“mailer”的用户。我仅使用此用户发送外发邮件,而不是接收邮件。我需要做什么才能使用以下 SMTP 信息发送外发邮件?

$config['host'] = 'localhost';
$config['port'] = '25';
$config['secure'] = '';  //ssl or tls
$config['auth'] = 'true';
$config['username'] = 'mailer';
$config['password'] = '******';

更新

请有人帮忙,我该如何设置帐户以通过 SMTP 发送邮件?

更新

我是否应该只能使用 SSH 信息作为用户名/密码来发送邮件?以上配置信息是通过 SMTP 使用 PHPMailer。

更新

我进行了通过 PHPMailer 发送电子邮件的测试,并且邮件日志显示...

Aug 31 17:58:55 spireprod postfix/smtpd[14597]: disconnect from unknown[::1]
Aug 31 17:58:55 spireprod postfix/smtp[14601]: DA1491BC1084: to=<[email protected]>, relay=gmail-smtp-in.l.google.com[74.125.95.27]:25, delay=0.48, delays=0.12/0.01/0.12/0.23, dsn=2.0.0, status=sent (250 2.0.0 OK 1283291935 gy42si22156132ibb.26)
Aug 31 17:58:55 spireprod postfix/qmgr[941]: DA1491BC1084: removed

问题是我从来没有收到过它!

答案1

您有测试过该账号是否可以发送邮件吗?

有几种方法可以做到这一点,但最简单的方法是通过 telnet 连接到邮件服务器上的端口 25(smtp)(从本地控制台尝试):

telnet localhost 25
Connected to localhost.localdomain (127.0.0.1).
Escape character is '^]'.
220 myserver.com ESMTP Postfix
EHLO test.com
250-myserver.com
250-PIPELINING
250-SIZE 10240000
250-VRFY
250-ETRN
250-STARTTLS
250-ENHANCEDSTATUSCODES
250-8BITMIME
250 DSN
mail from: [email protected]
250 2.1.0 Ok
rcpt to: [email protected]
250 2.1.5 Ok
DATA
354 End data with <CR><LF>.<CR><LF>
Subject: Test Message
Test
.
250 2.0.0 Ok: queued as 97B7D7640D0

如果您看到所有这 250 条 OK 消息,并且您的消息已发送至测试地址,则表示该帐户运行正常。

如果出现错误,则表明问题出在配置中。如果在 MAIL FROM: 命令后出现错误,则用户根本无法发送邮件。

如果在 RCPT TO: 命令后出现错误,则不允许用户向测试地址发送邮件。

如果您在邮件正文后收到错误,或者邮件从未到达,请检查您的邮件日志文件。另一个窗口可以实时查看您的邮件日志,这非常有用 -tail -f /var/log/maillog可以让您实时查看邮件服务器上正在发生的事情。在追踪事情时非常有用。

您还可以通过切换到邮件用户并使用邮件命令发送测试消息 — — 同时查看邮件日志以查看发生了什么。

答案2

Postfix 是一种接口,它接受邮件,并根据邮件的目的地进行发送。Postfix 可以没有用户。

如果你需要创建用户,从而在 Linux/Unix 上创建本地邮件收件人,则可以使用以下命令

useradd

执行man useradd。这将创建用户;检查选项,您可能必须指定主目录和/或创建它。然后请按照此操作关联

通常Linux上的默认设置是本地邮件将被Postfix接受并存储到/var/mail/用户在哪里用户是服务器本地存在的用户。

如果 Postfix 配置为接受和路由外部邮件,它将根据领域邮件地址( 之后的部分@)是否必须将其存储在本地(例如,用户在本地存在、未指定域或域mydestination与 中指定的域匹配main.cf),或者将其转发到中继,取决于默认值或transport表格。

通常,未知的域名将被转发到默认中继,或者 Postfix 将根据MX目标域的 DNS 条目设法将邮件传递到目标服务器。

答案3

在 Postfix 中,您可以拥有一个无需实际邮箱即可被授权发送电子邮件的用户。

该用户将仅用于执行发送电子邮件操作,但 postfix 不会检查用户名是否与用于发送电子邮件的电子邮件地址匹配(如果您不询问的话)。

显然,用户“邮件发送者”可以在[电子邮件保护][电子邮件保护]等等...对任何人来说。

您可以通过两种不同方式来实现:

  1. 如果您的 postfix 和发送应用程序位于同一台机器上(如您的示例所示),请按如下方式设置您的 postfix 配置

    smtpd_recipient_restrictions = permit_mynetworks,reject_unauth_destination

    我的网络 = 127.0.0.0/8

  2. 如果你的客户端在不同的机器上,请在 postfix 中设置 SASL 身份验证,并按如下方式设置限制

    smtpd_recipient_restrictions = permit_sasl_authenticated,permit_mynetworks,reject_unauth_destination

当您的用户“mailer”发送电子邮件时,postfix 将在授权“RCPT TO”命令之前控制其凭证。如果匹配,“mailer”将被授权使用任何“RCPT TO”值执行操作:mailer 可以向任何人发送电子邮件。MAIL FROM 字段不受控制,因此您可以在其中输入任何内容。

相关内容