我在Linux中添加一个名为“邮件程序”的用户。 我只使用这个用户发送传出的邮件,没有收到。 为了使用以下SMTP信息发送外发邮件,我需要做些什么?
$config['host'] = 'localhost'; $config['port'] = '25'; $config['secure'] = ''; //ssl or tls $config['auth'] = 'true'; $config['username'] = 'mailer'; $config['password'] = '******';
更新
有人请帮助,我如何设置一个帐户通过SMTP发送邮件?
更新
我应该能够使用SSH信息作为用户名/密码来发送邮件吗? 以上configuration信息通过SMTP使用PHPMailer。
更新
我跑了一个testing,通过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
问题是,我从来没有收到它!
您是否testing了该帐户是否可以发送邮件?
有几种方法可以做到这一点,但最简单的方法是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消息,并且您的消息到达testing地址,则该帐户正常工作。
如果出现错误,则会显示configuration中的问题所在。 如果在MAIL FROM:命令之后出现错误,则根本不允许用户发送邮件。
如果在RCPT TO:命令后出现错误,则不允许用户将邮件发送到testing地址。
如果在邮件正文之后出现错误,或邮件从未到达,请检查您的maillog文件。 有一个实时查看maillog的窗口非常有用 – tail -f /var/log/maillog可以让你看到你的邮件服务器发生了什么。 在追踪事情时非常有帮助。
您也可以通过切换到邮件程序用户进行testing,并使用mail命令发送testing消息 – 同时查看maillog以查看发生的情况。
在Postfix中,你可以有一个用户将被授权发送电子邮件,而没有一个实际的邮箱。
这个用户只能用来执行发送电子邮件的操作,但是postfix不会检查用户名是否与发送邮件的电子邮件地址相匹配(如果你没有问的话)。
明确地说,用户“邮件程序”可以发送电子邮件到[email protected],[email protected]等等的“邮件发送”字段给任何人。
你可以用两种不同的方式来做到这一点:
如果你的后缀和你的发送应用程序在同一台机器上(如你的例子),设置你的后缀configuration如下
smtpd_recipient_restrictions = permit_mynetworks,reject_unauth_destination
mynetworks = 127.0.0.0/8
如果您的客户端在不同的机器上,请在后缀中设置SASLauthentication,并设置如下限制
smtpd_recipient_restrictions = permit_sasl_authenticated,permit_mynetworks,reject_unauth_destination
当用户的“邮件程序”发送邮件时,postfix将在授权“RCPT TO”命令之前控制其凭证。 如果匹配,“邮件程序”将被授权以任何“RCPT TO”值执行操作:邮件程序可以将电子邮件发送给任何人。 MAIL FROM字段不受控制,所以您可以在其中放入任何内容。
Postfix是一种接口,可以接收邮件,并根据域名的目的地发送邮件。 Postfix没有用户。
如果您需要创build用户,并且因此在Linux / Unix本地邮件收件人上,则有命令
useradd
做一个man useradd 。 这将创build用户; 检查选项,您可能必须指定主目录和/或创build它。 那么请按照这个链接 。
通常Linux上的默认值是本地邮件将被Postfix接受并存储到/var/mail/ user中 ,其中user是服务器上本地存在的用户。
如果configuration为接受和路由外部邮件,Postfix将根据邮件地址的域 ( @之后的部分)决定是否必须将其存储在本地(例如,用户本地存在,没有指定域或者域匹配在main.cf指定的mydestination域),或将其转发给中继 ,具体取决于缺省值或transport表。
通常情况下,未知的域将被转发到默认中继,或者Postfix将根据目标域的DNS MX条目pipe理将邮件传递到目标服务器。