Hướng dẫn how to send email from localhost in php+ubuntu - cách gửi email từ localhost trong php + ubuntu

Tôi đã cài đặt PHP, MySQL, Postfix và SendMail và đã thiết lập một tập lệnh email đơn giản trên máy chủ máy chủ cục bộ của tôi. mail () Trả về 1 (Đúng) khi tôi gửi e-mail, tuy nhiên email không đến đích.

Cài đặt

Các chức năng thư là một phần của lõi PHP. Không có cài đặt cần thiết để sử dụng các chức năng này.

Yêu cầu

Đối với các chức năng thư có sẵn, PHP yêu cầu một hệ thống email được cài đặt và hoạt động. Chương trình được sử dụng được xác định bởi các cài đặt cấu hình trong tệp php.ini.

Cấu hình thời gian chạy Hành vi của các chức năng thư bị ảnh hưởng bởi các cài đặt trong tệp php.ini.

Tùy chọn cấu hình thư:

Name            Default     Description                                         Changeable
sendmail_path   NULL        Unix systems only: Specifies where the sendmail
                            program can be found (usually /usr/sbin/sendmail
                            or /usr/lib/sendmail)                               PHP_INI_SYSTEM

Tôi đã tìm thấy nó tại

sudo sendmailconfig
3 Tuy nhiên, tôi không thể tìm thấy tệp cấu hình, đó là nơi tôi cho rằng vấn đề của mình là, vì tôi chưa nói bất cứ điều gì tôi đang sử dụng máy chủ để gửi thư qua.

Nếu bất cứ ai có thể giúp tôi, tôi sẽ biết ơn.

Xin chào, tôi đã thử những lệnh này nhưng tôi không thể gửi thư xin vui lòng giúp tôi ..

1) Cài đặt SendMail

SendMail có thể đã được cài đặt, nhưng chỉ trong trường hợp, hãy nhập cái này vào thiết bị đầu cuối máy chủ:

sudo apt-get install sendmail

2) Định cấu hình SendMail

Nhập lệnh sau vào thiết bị đầu cuối và nhập "Y" cho mỗi câu hỏi mà nó hỏi:

sudo sendmailconfig

3) Chỉnh sửa tệp máy chủ

Thời gian để chỉnh sửa tệp máy chủ của máy chủ của bạn, truy cập nó bằng cách nhập lệnh sau vào thiết bị đầu cuối:

sudo vim /etc/hosts

Thêm dòng sau vào đầu tệp và lưu nó:

127.0.0.1 localhost localhost.localdomain your_domain_name_here.com

Nhận xét bất kỳ dòng trùng lặp đã tồn tại.

4) Khởi động lại Apache, hãy khởi động lại máy chủ của bạn chỉ để có biện pháp tốt. Tại thời điểm này, các email được gửi qua hàm thư của PHP () sẽ được gửi thành công và không chậm trễ nhiều.

sudo service apache2 restart 

Tôi không hiểu bước thứ 3 vì tôi đang làm việc trên localhost, vậy làm thế nào tôi có thể thêm tên miền ở đây ..

Bất kỳ sự giúp đỡ nào cũng sẽ được đánh giá cao

Vui lòng thực hiện các bước sau để gửi thư từ localhost trên Ubuntu/Linux thông qua Gmail:-Ubuntu/Linux through gmail :-

Vì vậy, bạn cần cài đặt

sudo sendmailconfig
4 trên máy chủ Linux/Ubuntu.
sudo sendmailconfig
4
on Linux/Ubuntu server.

Gmail sử dụng https: // (đó là siêu văn bản an toàn) vì vậy bạn cần cài đặt

sudo sendmailconfig
5https:// (it's hyper text secure) so you need install
sudo sendmailconfig
5

~$ sudo apt-get install msmtp ca-certificates

Sẽ mất vài giây để cài đặt gói

sudo sendmailconfig
4.

Bây giờ bạn phải tạo tệp cấu hình (____ 27) bằng cách sử dụng, trình soạn thảo gedit.

sudo sendmailconfig
7) using , gedit editor.

~$ sudo gedit /etc/msmtprc

Bây giờ bạn phải sao chép và dán mã sau vào gedit (tệp bạn đã tạo bằng lệnh ở trên)

defaults
tls on
tls_starttls on
tls_trust_file /etc/ssl/certs/ca-certificates.crt

account default
host smtp.gmail.com
port 587
auth on
user 
password MY_GMAIL_PASSSWORD
from 
logfile /var/log/msmtp.log

Đừng quên thay thế my_gmail_id bằng "id gmail" và my_gmail_password bằng "mật khẩu gmail" của bạn trong các dòng mã trên.MY_GMAIL_ID with your "gmail id" and MY_GMAIL_PASSSWORD with your "gmail password" in above lines of code.

Bây giờ tạo

sudo sendmailconfig
8 như

~$ sudo touch /var/log/msmtp.log

Bạn phải làm cho tệp này có thể đọc được bởi bất kỳ ai có

sudo apt-get install sendmail
0

Bây giờ bật tệp nhật ký sendmail có thể ghi với

sudo apt-get install sendmail
1

Cấu hình của bạn cho SMTP của Gmail hiện đã sẵn sàng. Bây giờ hãy gửi một email kiểm tra dưới dạng

sudo apt-get install sendmail
2

Vui lòng kiểm tra hộp thư đến gmail của bạn.

Để gửi thư với PHP Vui lòng kiểm tra https://stackoverflow.com/questions/33969783/phpubuntu-send-email-using-gmail-porm-localhost

Trong bài viết này, chúng tôi sẽ cài đặt và định cấu hình Postfix để cho phép các ứng dụng của chúng tôi sử dụng chức năng PHP

sudo sendmailconfig
9. Đã thử nghiệm và làm việc trên Ubuntu 20.04, 18.04 & 16.04.

Giới thiệu

Nếu bạn đang chạy máy chủ web của riêng mình và mong đợi nó sẽ gửi email qua Php Mail () mà không gặp vấn đề gì, bạn sẽ có một thời gian tồi tệ.

Kể từ khi tôi viết bài viết này vào năm 2017, các nhà cung cấp email đã trở nên rất nghiêm ngặt về người mà họ sẽ nhận được email. Trở lại năm 2017, các dịch vụ email lớn như Gmail và Office 365 sẽ miễn cưỡng chấp nhận email từ các trường hợp đám mây như DigitalOcean.

Tôi đã quan sát thấy trong những năm qua, việc thắt chặt các bộ lọc spam, ngăn email PHP () không bao giờ tiếp cận người nhận của họ, mặc dù kiểm tra tất cả các hộp của tôi.

Vì vậy, trong khi hướng dẫn này thực sự sẽ cho phép máy chủ của bạn gửi email ra ether, vấn đề bây giờ là liệu các máy chủ thư nhận sẽ chấp nhận hoặc từ chối chúng.

Cá nhân, bây giờ tôi chuyển tiếp tất cả các email thông qua một nhà cung cấp thư, có thể là mailgun, sendgrid hoặc gmail. Bạn có thể định cấu hình Postfix để gửi email thông qua nhà cung cấp SMTP mà bạn chọn, hiện là khuyến nghị của tôi để đảm bảo gửi thư.

Vui lòng xem Bước 5 bên dưới nếu bài kiểm tra Php () s của bạn không được gửi cho người nhận của bạn.

1. Cài đặt Postfix

Trước tiên, hãy cập nhật cơ sở dữ liệu gói.

sudo apt-get install sendmail
3

Cài đặt

sudo vim /etc/hosts
0, sẽ tự động cài đặt Postfix.

sudo apt-get install sendmail
4

Trên màn hình cấu hình Postfix đầu tiên, chọn OK bằng cách nhấn

sudo vim /etc/hosts
1 và
sudo vim /etc/hosts
2OK by pressing
sudo vim /etc/hosts
1 and
sudo vim /etc/hosts
2

Hướng dẫn how to send email from localhost in php+ubuntu - cách gửi email từ localhost trong php + ubuntu

Chọn trang web Internet và nhấn

sudo vim /etc/hosts
2.Internet Site and press
sudo vim /etc/hosts
2.

Hướng dẫn how to send email from localhost in php+ubuntu - cách gửi email từ localhost trong php + ubuntu

Tên hệ thống phải là tên miền của bạn, ví dụ.

sudo vim /etc/hosts
4, nhấn
sudo vim /etc/hosts
2.
should be your domain name eg.
sudo vim /etc/hosts
4, press
sudo vim /etc/hosts
2.

Hướng dẫn how to send email from localhost in php+ubuntu - cách gửi email từ localhost trong php + ubuntu

Gói bây giờ nên được cài đặt.

2. Định cấu hình Postfix

Vì lý do bảo mật, bạn chỉ nên hướng dẫn Postfix để xử lý & NBSP; yêu cầu gửi email từ máy chủ mà nó đang chạy.

Chỉnh sửa tệp cấu hình Postfix.

sudo apt-get install sendmail
5

Về phía dưới của tệp, tìm dòng

sudo vim /etc/hosts
6. (Nhấn
sudo vim /etc/hosts
7 +
sudo vim /etc/hosts
8 để tìm kiếm) Thay đổi nó thành:
Change it to:

/etc/postfix/main.cf

sudo apt-get install sendmail
6

Lưu tệp và thoát. (Nhấn

sudo vim /etc/hosts
7 +
127.0.0.1 localhost localhost.localdomain your_domain_name_here.com
0, nhấn
127.0.0.1 localhost localhost.localdomain your_domain_name_here.com
1 và sau đó nhấn
sudo vim /etc/hosts
2)

Cuối cùng, hãy để khởi động lại Postfix.

sudo apt-get install sendmail
7

Nếu bạn có ý định gửi email đến tên miền của riêng bạn, Postfix yêu cầu một số cấu hình bổ sung. Ví dụ: tôi muốn ứng dụng PHP của mình gửi email đến. Điều này sẽ thất bại nếu bạn không thực hiện một số thay đổi bổ sung cho tệp

127.0.0.1 localhost localhost.localdomain your_domain_name_here.com
3 của bạn.

  • Có thể gửi thư đến tên miền riêng. Postfix: status = boedced (người dùng không xác định: người dùng ”)

3. Kiểm tra postfix

Bây giờ chúng tôi sẽ gửi một tin nhắn email kiểm tra. Đảm bảo thay thế & nbsp; ________ 44 & nbsp; với địa chỉ email của riêng bạn.

sudo apt-get install sendmail
8

Don Tiết quên kiểm tra thư mục thư rác của bạn.

Nếu bạn vẫn chưa nhận được bất kỳ thư nào sau vài phút, hãy kiểm tra nhật ký lỗi thư.

sudo apt-get install sendmail
9

Nếu nhật ký thư trống hoặc không cung cấp đủ thông tin, hãy thử phân tích cú pháp syslog. Điều này sẽ trả lại 50 mục cuối cùng cho Postfix.

sudo sendmailconfig
0

Nếu syslog trống và bạn vẫn chưa nhận được bất kỳ email kiểm tra nào, thì có thể email kiểm tra đã bị máy chủ nhận từ chối. Bạn nên kiểm tra xem có bất cứ điều gì đã quay trở lại thư mục thư của bạn không.

sudo sendmailconfig
1

Nhấn Uppercase & nbsp; ________ 45 & nbsp; để cuộn xuống dưới cùng của tệp và chữ thường & nbsp; ________ 46 & nbsp; để thoát. Biến & nbsp; ____ 47 & nbsp; biến trả về người dùng hiện đã đăng nhập.

Cập nhật tháng 2 năm 2020: Nếu bạn đang gửi đến Gmail, Outlook hoặc các nhà cung cấp email lớn khác, bạn có thể gặp lỗi nảy tương tự như thông báo này không có thông tin xác thực hoặc thất bại. Nếu vậy, vui lòng xem bài viết: If you are sending to Gmail, Outlook or other large email providers, you may get a bounce error similar to “This message does not have authentication information or fails”. If so, please see article:

  • Postfix Gmail Bounce: Thông báo này không có thông tin xác thực hoặc không thể kiểm tra xác thực 550-5.7.26.

4. Kiểm tra thư PHP ()

Nếu Postfix hoạt động chính xác, giờ đây bạn có thể gửi thư qua PHP

sudo sendmailconfig
9.

sudo sendmailconfig
2

5. Thư không bao giờ nhận được / vấn đề thư rác

Nếu email đang bị từ chối bởi nhà cung cấp thư từ xa (như Gmail hoặc Office 365) hoặc thư sẽ chuyển thẳng đến thư mục thư rác của ứng dụng email của bạn, bạn có thể cần thực hiện một số cấu hình bổ sung trên tên miền của bạn (SPF, DKIM, DMARC Records) Để có được các bộ lọc thư rác trong quá khứ. Vui lòng xem:

  • Postfix Gmail Bounce: Thông báo này không có thông tin xác thực hoặc không thể kiểm tra xác thực 550-5.7.26.

4. Kiểm tra thư PHP ()

  • Nếu Postfix hoạt động chính xác, giờ đây bạn có thể gửi thư qua PHP
    sudo sendmailconfig
    
    9.
    external SMTP server.
  • 5. Thư không bao giờ nhận được / vấn đề thư rácGmail’s SMTP server.

Nếu email đang bị từ chối bởi nhà cung cấp thư từ xa (như Gmail hoặc Office 365) hoặc thư sẽ chuyển thẳng đến thư mục thư rác của ứng dụng email của bạn, bạn có thể cần thực hiện một số cấu hình bổ sung trên tên miền của bạn (SPF, DKIM, DMARC Records) Để có được các bộ lọc thư rác trong quá khứ. Vui lòng xem:

Tuy nhiên, bạn có thể không bao giờ có thể đảm bảo gửi thư qua Postfix nếu bạn không định tuyến thư qua máy chủ SMTP bên ngoài đáng tin cậy. Đã có nhiều vấn đề trong nhiều năm qua gửi Php Mail () từ máy chủ đám mây của riêng tôi, đề nghị của tôi bây giờ là chuyển thư từ Postfix đến nhà cung cấp SMTP bên ngoài để đảm bảo giao hàng.

Tôi có thể gửi email từ localhost PHP không?

Thư viện PHPMailer cung cấp cách dễ nhất để gửi email từ localhost với máy chủ SMTP bằng PHP. Không chỉ email văn bản, mà bạn còn có thể gửi email HTML từ LocalHost trong PHP bằng PHPMailer.. Not only the text email, but you can also send HTML email from localhost in PHP using PHPMailer.

Tôi có thể gửi email bằng localhost không?

Bạn có thể gửi thư từ localhost với gói sendmail, gói sendmail được xây dựng trong XAMPP.Vì vậy, nếu bạn đang sử dụng XAMPP thì bạn có thể dễ dàng gửi thư từ localhost.Ví dụ: bạn có thể định cấu hình c: \ xampp \ php \ php.Ini và C: \ Xampp \ SendMail \ SendMail. , sendmail package is inbuild in XAMPP. So if you are using XAMPP then you can easily send mail from localhost. For example, you can configure C:\xampp\php\php. ini and c:\xampp\sendmail\sendmail.

Làm cách nào để gửi email bằng PHP?

PHP sử dụng hàm mail () để gửi email.Hàm này yêu cầu ba đối số bắt buộc chỉ định địa chỉ email của người nhận, chủ đề của tin nhắn và tin nhắn thực tế cũng có hai tham số tùy chọn khác.mail (đến, chủ đề, tin nhắn, tiêu đề, tham số);mail() function to send an email. This function requires three mandatory arguments that specify the recipient's email address, the subject of the the message and the actual message additionally there are other two optional parameters. mail( to, subject, message, headers, parameters );

Làm thế nào gửi thư từ localhost PHP đến XAMPP?

Các bước để gửi thư từ localhost XAMPP bằng Gmail:..
Mở thư mục cài đặt XAMPP ..
Điều hướng tệp Php.ini từ C: \ Xampp \ PHP ..
Nhấn Ctrl + F để tìm chức năng thư ..
Tìm kiếm và vượt qua các giá trị dưới đây.....
Mở sendmail.....
Nhấn Ctrl + F & Tìm SendMail ..