Nếu chỉ đơn giản bạn muốn server có thể gửi mail ra bên ngoài thì có thể sử dụng ứng dụng sendmail. Sau khi cài đặt và cấu hình xong thì bạn có thể sử dụng hàm mail() của PHP để gửi mail.

Cài đặt sendmail

sudo yum install sendmail sendmail-cf

Cấu hình sendmail

nano /etc/mail/sendmail.mc

Chú ý không sửa file sendmail.cf vì file này sẽ được tự động sinh ra từ file sendmail.mc

Cấu hình DAEMON_OPTIONS để cho phép gửi mail từ localhost/smtp

DAEMON_OPTIONS(`Port=smtp,Addr=127.0.0.1, Name=MTA')dnl

Chỉnh lại LOCAL_DOMAIN thành hostname

LOCAL_DOMAIN(`example.com')dnl

Update cấu hình sendmail

sudo make -C /etc/mail

Khởi động lại

sudo service sendmail restart

Kiểm tra sendmail

echo "Subject: test" | /usr/lib/sendmail -v admin@hocvps.com

(Nhớ thay bằng địa chỉ email của bạn)

Để việc gửi mail được thuận lợi, bạn cần chú ý cài đặt hostname trong CentOS chính xác nữa.

Tagged:

160 Comments

  1. Longphp 1 comment

    Admin cho minhf hỏi, mình chạy lệnh cuối test sendmail thì bị báo lỗi sau:
    Deferred: Connection refused by [127.0.0.1]

    Nhờ admin chỉ cách fix lỗi này với.

  2. phong nguyen 1 comment

    Admin ơi, mình cài y như bài của bạn test thấy ok tuy nhiên khi dùng hàm mail() thì ko nhận đc thư kể cả ở mục spam mình check thấy hàm mail đã chạy rồi nhưng ko hề có mail tới, vps mình cài hocvps
    mình để cấu hình là
    dnl DAEMON_OPTIONS(`Port=smtp,Addr=127.0.0.1, Name=MTA’)dnl
    LOCAL_DOMAIN(`shopvn.com’)dnl

    https://hocvps.com/thay-doi-hostname-trong-linux/ mình tham khảo đổi ở đây nhưng check hostname vẫn là vultr.guess, minh định vào config trong admin vultr nhưng nó bắt phải reinstall vps mới đc nên thôi

    admin xem giúp mình tý nhé

    1. Luân Trần Admin

      Vậy là do WordPress của bạn chưa cấu hình send mail chuẩn rồi, cài đặt plugin WP Mail SMTP rồi setup lại nhé.

  3. Tiến 1 comment

    Admin cho mình hỏi làm thế nào có thể gửi được mail ra ngoài vd gửi đến gmail. Mình cấu hình dns roi txt va mx rồi. Mình làm theo bạn chỉ dẫn thì chỉ gửi được mail nội bộ và chỉ nhận được mail từ bên ngoài. Còn khi gửi ra ngoài thì vẫn báo là gửi ok nhưng mail không đến được gmail nhờ bạn chỉ dẫn mình với. Mình sd vps centos 7

  4. Nghĩa 19 comment

    Sao mình cấu hình đúng rồi, gửi email báo OK rồi mà vẫn ko được nhỉ?
    Mình sử dụng vps Vultr (đã mở port 25) + hocvps, đã setup hostname, cả trong mục spam cũng không có, gửi email đến @domain cũng ko đc, @gmail càng ko

    Mong ad cho mình hướng giải quyết với!

      1. Nghĩa 19 comment

        [root@server home]# echo “Subject: test” | /usr/lib/sendmail -v admin@minhchip.com
        admin@minhchip.com… Connecting to [127.0.0.1] via relay…
        220 server.phimle.tv ESMTP Sendmail 8.14.4/8.14.4; Fri, 16 Dec 2016 13:59:52 +0700
        >>> EHLO server.phimle.tv
        250-server.phimle.tv Hello localhost [127.0.0.1], pleased to meet you
        250-ENHANCEDSTATUSCODES
        250-PIPELINING
        250-8BITMIME
        250-SIZE
        250-DSN
        250-ETRN
        250-DELIVERBY
        250 HELP
        >>> MAIL From: SIZE=14
        250 2.1.0 … Sender ok
        >>> RCPT To:
        >>> DATA
        250 2.1.5 … Recipient ok
        354 Enter mail, end with “.” on a line by itself
        >>> .
        250 2.0.0 uBG6xqDv004840 Message accepted for delivery
        admin@minhchip.com… Sent (uBG6xqDv004840 Message accepted for delivery)
        Closing connection to [127.0.0.1]
        >>> QUIT
        221 2.0.0 server.phimle.tv closing connection

        ============
        Bác kiểm tra dùm mình với!

          1. Nghĩa 19 comment

            Mình gửi email từ gmail sang minhchip vẫn nhận được bác ơi!
            Còn mình dùng email server đó gửi đến gmail cũng ko nhận đc bác

          2. Luân Trần Admin

            Mình nhìn output kia là gửi mail từ server đi thành công. Còn những vấn đề khác thì bạn check lại cẩn thận đi.

  5. Phong 7 comment

    làm theo hướng dẫn của bạn, test thử với “echo “Subject: test” | /usr/lib/sendmail -v admin@hocvps.com” với cả gmail và domain riêng, nó đều báo thành công nhưng ko có nhận cái mail nào

    và giờ thì thêm 1 vấn đề, domain riêng ko thể nhận mail luôn :(; trước khi cài cái sendmail sendmail-cf thì domain nhận mail được bình thường

    đã từng hỏi trên forum của sentora thì nó bảo sentora hoạt động mail mặc định với postfix, ko cần cài thêm bất cứ cái kì, kêu mình check port lại; theo topic cua bạn – https://hocvps.com/kiem-tra-va-mo-port-vps-tren-centos/ – mở port 25 cho nó nhưng test tiếp “echo “Subject: test” | /usr/lib/sendmail -v admin@hocvps.com” với cả gmail và domain riêng, nó đều báo thành công nhưng vẫn ko có nhận cái mail nào

    cái vấn đề mail này mình gặp hơn 3 tuần nay mà vẫn ko sửa đc, giúp mình với

      1. Phong 7 comment

        ko, cái đó là mình copy cho để trả lời trên này cho mau thôi, mình biết đổi email chứ

    1. Phong 7 comment

      bây giờ dùng cmd yum remove sendmail để bỏ cái này thì có ảnh hưởng hệ thống ko b?

      1. Việt Phương Moderator

        # yum remove sendmail* ok nhé bạn. Package sendmail và sendmail-cf sẽ bị gỡ

  6. Cường 10 comment

    Sao mình cấu hình gửi SMTP của Gmail mà kết quả debug của plugin lại cứ hiển thị tên miền server dạng mail.tenmien.com nhỉ?

    The SMTP debugging output is shown below:

    2017-02-20 11:29:10 Connection: opening to ssl://mail.tenmien.com:465, timeout=300, options=array ()</code

  7. Quân 1 comment

    Mình hiện tại có 1 email riêng, mình muốn thiết lập để sendmail gửi thông báo khi có bug mình bắt log vào email của mình.
    Admin có thể hướng dẫn mình cấu hình send để gửi mail thông qua cái email của mình đang xài ko ?
    Xin cảm ơn!

  8. Gà Con 3 comment

    Vẫn không nhận được mail
    echo “Subject: test” | /usr/lib/sendmail -v pmddhuyen@gmail.com
    pmddhuyen@gmail.com… Connecting to [127.0.0.1] via relay…
    220 sv1.ddcantho.com ESMTP Sendmail 8.14.4/8.14.4; Wed, 7 Jun 2017 22:52:10 +0700
    >>> EHLO sv1.ddcantho.com
    250-sv1.ddcantho.com Hello localhost [127.0.0.1], pleased to meet you
    250-ENHANCEDSTATUSCODES
    250-PIPELINING
    250-8BITMIME
    250-SIZE
    250-DSN
    250-ETRN
    250-DELIVERBY
    250 HELP
    >>> MAIL From: SIZE=14
    250 2.1.0 … Sender ok
    >>> RCPT To:
    >>> DATA
    250 2.1.5 … Recipient ok
    354 Enter mail, end with “.” on a line by itself
    >>> .
    250 2.0.0 v57FqALj001843 Message accepted for delivery
    pmddhuyen@gmail.com… Sent (v57FqALj001843 Message accepted for delivery)
    Closing connection to [127.0.0.1]
    >>> QUIT
    221 2.0.0 sv1.ddcantho.com closing connection

  9. Viet Hung 11 comment

    Admin xem hộ mình cái này với.
    “WARNING: local host name (chiasewp) is not qualified; see cf/README: WHO AM I?”
    Fix như nào ạ?

    1. Việt Phương Moderator

      Bạn không để hostname là full domain à? Phải là chiasewp. gì đó
      Bởi vì sendmail sẽ sử dụng hostname làm sender của mail, và việc sử dụng chiasewp thì khi ra ngoài network sẽ không thể hiểu do nó không xác định

  10. sinhle 17 comment

    mình bị lỗi này admin ới
    thietkevncom@gmail.com… Connecting to [127.0.0.1] via relay…
    thietkevncom@gmail.com… Deferred: Connection refused by [127.0.0.1]

    Cấu hình mình làm như sau:
    DAEMON_OPTIONS(`Port=smtp,Addr=ip của vps, Name=MTA’)dnl
    LOCAL_DOMAIN(`1doi1.com’)dnl

    Và mình chỉnh ở đây
    # nano /etc/sysconfig/network
    NETWORKING=yes
    HOSTNAME=1doi1.com

    ip của vps hocvps.com
    ::1 hocvps.com

    Gửi test mail thì nó báo zậy.
    thanks ad

      1. sinhle 17 comment

        Sau khi check thấy port 465 đang close. mình chạy lệnh
        iptables -I INPUT -m state –state NEW -m tcp -p tcp –dport 465 -j ACCEPT

        Nhung khi chạy lệnh “service iptables restart” thì báo lỗi
        iptables: Setting chains to policy ACCEPT: security raw nat[FAILED]filter

        nhờ bạn hỗ trợ.

          1. sinhle 17 comment

            đúng linode luôn 😀
            Mà lỗi này có ảnh hưởng gì không bạn?
            Vì đọc bài tiếng anh nên không hiểu lắm. dù đã dịch

          2. Việt Phương Moderator

            Lỗi này lần đầu gặp và mình chỉ thấy report trên Linode nên mình đoán vậy. Bạn fix theo topic họ chỉ dẫn xem được không

          3. sinhle 17 comment

            chắc chỉ ảnh hưởng đến send email. Thôi không rành tiếng Anh nên sống chung với lũ vậy hihi

  11. Andy 5 comment

    Mình gặp lỗi này ko gửi được, bạn check gúp nhé

    authentication required
    503-All RCPT commands were rejected with this error:
    503-authentication required
    503 Valid RCPT command must precede DATA

    1. Việt Phương Moderator

      Bạn post full lỗi ra nhé. Có đoạn 550-Verification failed for không? Và bạn gửi tới email nào

      1. Andy 5 comment

        Full lỗi đây bạn

        [root@vps ~]# echo “Subject: test” | /usr/lib/sendmail -v 7ndung@gmail.com
        7ndung@gmail.com… Connecting to [127.0.0.1] via relay…
        220 vps ESMTP Exim 4.87 Wed, 26 Jul 2017 04:01:17 +0000
        >>> EHLO vps.hvx.com
        250-vps Hello vps.hvx.com [127.0.0.1]
        250-SIZE 20971520
        250-8BITMIME
        250-PIPELINING
        250-AUTH PLAIN LOGIN
        250-STARTTLS
        250 HELP
        >>> STARTTLS
        220 TLS go ahead
        >>> EHLO vps.hvx.com
        250-vps Hello vps.hvx.com [127.0.0.1]
        250-SIZE 20971520
        250-8BITMIME
        250-PIPELINING
        250-AUTH PLAIN LOGIN
        250 HELP
        >>> MAIL From: SIZE=14 AUTH=root@vps.hvx.com
        250 OK
        >>> RCPT To:
        >>> DATA
        550 authentication required
        503-All RCPT commands were rejected with this error:
        503-authentication required
        503 Valid RCPT command must precede DATA
        >>> RSET
        250 Reset OK
        >>> RSET
        250 Reset OK
        root… Using cached ESMTP connection to [127.0.0.1] via relay…
        >>> MAIL From: SIZE=1038
        250 OK
        >>> RCPT To:
        >>> DATA
        550 authentication required
        503-All RCPT commands were rejected with this error:
        503-authentication required
        503 Valid RCPT command must precede DATA
        >>> RSET
        250 Reset OK
        >>> RSET
        250 Reset OK
        postmaster… Using cached ESMTP connection to [127.0.0.1] via relay…
        >>> MAIL From: SIZE=2062
        250 OK
        >>> RCPT To:
        >>> DATA
        550 authentication required
        503-All RCPT commands were rejected with this error:
        503-authentication required
        503 Valid RCPT command must precede DATA
        >>> RSET
        250 Reset OK
        Closing connection to [127.0.0.1]
        >>> QUIT
        221 vps closing connection

        1. Việt Phương Moderator

          Có vẻ vấn đề thuộc về hostname. Bạn cài đặt cho hostname đạt chuẩn FQDN xem được không, tức full domain. Đồng thời bạn test thử mail ngoài hệ thống Gmail

          1. Andy 5 comment

            Mình cũng đã thủ nhiều email ngoài Gmail, và luôn có lỗi như vậy.
            Hostname khi thay đổi thì báo ok, nhưng khi reboot lại về hostname mặc định.

  12. tien 1 comment

    [root@betx88 ~]# echo “Subject: test” | /usr/lib/sendmail -v loipham89@gmail.com
    WARNING: local host name (Betx88) is not qualified; see cf/README: WHO AM I?
    loipham89@gmail.com… Connecting to [127.0.0.1] via relay…
    220 Betx88 ESMTP Sendmail 8.14.7/8.14.7; Mon, 7 Aug 2017 13:48:12 GMT
    >>> EHLO Betx88
    250-Betx88 Hello Betx88 [127.0.0.1], pleased to meet you
    250-ENHANCEDSTATUSCODES
    250-PIPELINING
    250-8BITMIME
    250-SIZE
    250-DSN
    250-ETRN
    250-DELIVERBY
    250 HELP
    >>> MAIL From: SIZE=14
    250 2.1.0 … Sender ok
    >>> RCPT To:
    >>> DATA
    250 2.1.5 … Recipient ok
    354 Enter mail, end with “.” on a line by itself
    >>> .
    250 2.0.0 v77DmCEB012941 Message accepted for delivery
    loipham89@gmail.com… Sent (v77DmCEB012941 Message accepted for delivery)
    Closing connection to [127.0.0.1]
    >>> QUIT
    221 2.0.0 Betx88 closing connection

    bao thanh cong mà nó không gửi mail ve cho mình

    1. Việt Phương Moderator

      Bạn kiểm tra hết các hòm mail chưa (cả Spam, Social, Promotions…)?

  13. sinhle 17 comment

    Chào các bạn,
    Mìn gửi email trên mã nguồn xenforo thì lỗi vầy

    fwrite(): SSL operation failed with code 1. OpenSSL Error messages: error:140D00CF:SSL routines:SSL_write:protocol is shutdown

    Khi mình đang gửi mail cho thành viên, vẫn có email gửi đi thành công. Nhưng một lúc là lại báo lỗi như vậy. xong mình lại phải bấm gửi lại cho ai chưa nhận được.
    Tks ae

    1. Việt Phương Moderator

      Bạn kiểm tra lại cấu hình SMTP trong code PHP, phần sử dụng SSL để sendmail nhé. Lỗi liên quan đến phần đó

Comment của bạn

Your email address will not be published. Required fields are marked *