I have add a user in linux called "mailer". I'm only using this user to send outgoing mail, not receive. What do I need to do in order use the following SMTP information to send outgoing mail?
$config['host'] = 'localhost';
$config['port'] = '25';
$config['secure'] = ''; //ssl or tls
$config['auth'] = 'true';
$config['username'] = 'mailer';
$config['password'] = '******';
update
Someone please help, how can I setup an account to send mail via SMTP?
update
Should I just be able to use SSH information as the username/password to send mail? The above configuration information is using PHPMailer via SMTP.
update
I ran a test to send email via PHPMailer and the mail logs show...
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
The problem is that I never received it!
Have you tested whether the account can send mail?
There are a few ways of doing this, but the easiest is to telnet to port 25 (smtp) on your mailserver (try from the local console):
If you see all those 250 OK messages and your message gets through to the test address, then the account is working fine.
If you get an error, then it will indicate where the problem is in the config. If you get an error after the MAIL FROM: command, then the user is not allowed to send mail at all.
If you get an error after the RCPT TO: command, then the user is not allowed to send mail to the test address.
If you get an error after the body of the mail, or the message never arrived, then check your maillog file. It is pretty useful to have another window with a live view of your maillog -
tail -f /var/log/maillog
will allow you to see what is happening on your mailserver as it happens. Very helpful when tracking things down.You can also test by switching to the mailer user, and using the mail command to send a test message - view the maillog at the same time to see what happens.
Postfix is a kind of interface, that accepts mails, and dispatch them depending on their domain destination. Postfix does not have users.
If you need to create users, and thus - on Linux/Unix - local mail recipients, there is the command
Do a
man useradd
. This will create the user ; check the options, you may have to specify the home directory and/or create it. Then please follow this link.Usually the default on Linux is that the local mail will be accepted by Postfix and stored into
/var/mail/
user where user is a user who exists locally on the server.Postfix, if configured for accepting and routing external mail, will decide depending on the domain of the mail address (the part after the
@
) if it has to store it locally (eg user exists locally, no domain is specified or the domain matches themydestination
domains specified inmain.cf
), or forward it to a relay, depending on the default or thetransport
table.Typically a domain not known will be forwarded to the default relay, or Postfix will manage to pass the mail to the destination server based on the DNS
MX
entries of the destination domain.In Postfix, you can have a user that will be authorized to send emails without having an actual mailbox.
This user will only be used to perform the send email operation, but postfix does not check that the username matches the email address used to send the email (if you don't ask it too).
In clear, user 'mailer' can send email with a 'mail from' field at [email protected], [email protected], and so on... to anybody.
You can do that in two different way:
If your postfix and your sending application are on the same machine (as in your example), set your postfix configuration as follow
smtpd_recipient_restrictions = permit_mynetworks,reject_unauth_destination
mynetworks = 127.0.0.0/8
If your client is on a different machine, setup SASL Authentication in postfix and set the restriction as follow
smtpd_recipient_restrictions = permit_sasl_authenticated,permit_mynetworks,reject_unauth_destination
When your user 'mailer' will send a email, postfix will control its credential before authorizing the 'RCPT TO' command. If it matches, 'mailer' will be authorized to perform the operation with any 'RCPT TO' value: mailer can send emails to anybody. The MAIL FROM field isn't controlled, so you can put anything in there.