0

I have two servers, one is the email server and the another one is the web server, but I have an application that needs to send emails and for that I am using phpmailer, at the beginning I used gmail and worked fine, but now I have to use my own email server, in that server is running postfix but I can get it work

Here is my phpmailer code

public function __construct() { {
        $this->mail = new PHPMailer();
        $this->mail->isSMTP();
        $this->mail->SMTPSecure = false;    
        $this->mail->Host = 'xxxx.xxxx.xxxx.xxxx';
        $this->mail->Port = 25;
        $this->mail->Username = 'root@mydomain.com';
        $this->mail->Password = '';
        $this->mail->SetFrom('user', 'My Page');
    }

postfix configuration

# See /usr/share/postfix/main.cf.dist for a commented, more complete version


# Debian specific:  Specifying a file name will cause the first
# line of that file to be used as the name.  The Debian default
# is /etc/mailname.
#myorigin = /etc/mailname

smtpd_banner = $myhostname ESMTP $mail_name (Ubuntu)
biff = no

# appending .domain is the MUA's job.
append_dot_mydomain = no

# Uncomment the next line to generate "delayed mail" warnings
#delay_warning_time = 4h

readme_directory = no

# TLS parameters
smtpd_tls_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
smtpd_tls_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
smtpd_use_tls=yes
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache

# See /usr/share/doc/postfix/TLS_README.gz in the postfix-doc package for
# information on enabling SSL in the smtp client.

smtpd_relay_restrictions = permit_mynetworks permit_sasl_authenticated defer_unauth_destination
myhostname = mydomain.com
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
myorigin = /etc/mailname
mydestination = mydomain.com, localhost, localhost.localdomain, localhost
relayhost = 
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = all

When I try to send an email from my application I get the following error

SMTP -> FROM SERVER:220 mydomain.com ESMTP Postfix (Ubuntu)
CLIENT -> SMTP: EHLO www.mydomain.com
SMTP -> FROM SERVER: 250-mydomain.com 250-PIPELINING 250-SIZE 10240000 250-VRFY 250-ETRN 250-STARTTLS 250-ENHANCEDSTATUSCODES 250-8BITMIME 250 DSN
CLIENT -> SMTP: MAIL FROM:
SMTP -> FROM SERVER:250 2.1.0 Ok
CLIENT -> SMTP: RCPT TO:
SMTP -> FROM SERVER:454 4.7.1 : Relay access denied
SMTP -> ERROR: RCPT not accepted from server: 454 4.7.1 : Relay access denied
SMTP Error: The following recipients failed: account@hotmail.com Error

The truth is that is my first time configuring and email server and I have no idea what to do now.

I tested postfix from command line and works.

Alexander Ceballos
  • 750
  • 2
  • 20
  • 36
  • 1
    The answer (as usual) is in the logs - you've not configured the MTA to allow relaying. If you had tested this with a different client then you would have known for yourself that this is nothing to do with PHP. But configuring an MTA securely is **very** difficult - and you've not configured authentication nor have you setup TLS correctly. This MTA will be relaying spam within minutes of you exposing it on the internet. I would recommend you get some help with this. – symcbean Jan 15 '14 at 20:23
  • May be another suggestion to solve this problem – Alexander Ceballos Jan 16 '14 at 12:23
  • The only solution I found was to use sendmail, but installed in the web server where is my application – Alexander Ceballos Jan 17 '14 at 15:48
  • 1
    That's not a solution. – symcbean Jan 17 '14 at 18:59

1 Answers1

-1

I had a similar problem recently.. [https://serverfault.com/questions/646409/how-do-i-configure-postfix-to-allow-phpmailer-to-send-out-email-through-it][1]

I could fix by adding the following in postfix master.conf..

smtpd_recipient_restrictions = permit_mynetworks permit_sasl_authenticated reject_unauth_destination

More about smtpd_recipient_restrictions, please chick this Linux postfix/dovecot 554 Relay access denied

Community
  • 1
  • 1
Aravinda
  • 495
  • 1
  • 7
  • 17