Hướng dẫn does php mail require smtp? - thư php có yêu cầu smtp không?

$from = "";
$headers = "From:" . $from;
echo mail ["" ,"testmailfunction" , "Oj",$headers];

Tôi gặp khó khăn khi gửi email trong PHP. Tôi nhận được một lỗi:

[mail function]
; For Win32 only.
; //php.net/smtp
SMTP = localhost
; //php.net/smtp-port
smtp_port = 25

; For Win32 only.
; //php.net/sendmail-from
sendmail_from = 
3.

Tôi đã có ấn tượng rằng bạn có thể gửi email mà không cần SMTP để xác minh. Tôi biết rằng thư này sẽ được lọc ra, nhưng điều đó không quan trọng ngay bây giờ.

[mail function]
; For Win32 only.
; //php.net/smtp
SMTP = localhost
; //php.net/smtp-port
smtp_port = 25

; For Win32 only.
; //php.net/sendmail-from
sendmail_from = 

Đây là thiết lập trong tệp

[mail function]
; For Win32 only.
; //php.net/smtp
SMTP = localhost
; //php.net/smtp-port
smtp_port = 25

; For Win32 only.
; //php.net/sendmail-from
sendmail_from = 
4. Tôi nên thiết lập SMTP như thế nào? Có máy chủ SMTP nào không yêu cầu xác minh hay tôi phải tự thiết lập máy chủ?

Đã hỏi ngày 22 tháng 1 năm 2013 lúc 10:42Jan 22, 2013 at 10:42

Borut Flisborut FlisBorut Flis

15K29 Huy hiệu vàng85 Huy hiệu bạc115 Huy hiệu đồng29 gold badges85 silver badges115 bronze badges

Khi bạn đang gửi e -mail qua một máy chủ yêu cầu SMTP Auth, bạn thực sự cần chỉ định nó và đặt máy chủ, tên người dùng và mật khẩu [và có thể là cổng nếu nó không phải là thứ mặc định - 25].

Ví dụ: tôi thường sử dụng phpmailer với các cài đặt tương tự như bản này:

$mail = new PHPMailer[];

// Settings
$mail->IsSMTP[];
$mail->CharSet = 'UTF-8';

$mail->Host       = "mail.example.com";    // SMTP server example
$mail->SMTPDebug  = 0;                     // enables SMTP debug information [for testing]
$mail->SMTPAuth   = true;                  // enable SMTP authentication
$mail->Port       = 25;                    // set the SMTP port for the GMAIL server
$mail->Username   = "username";            // SMTP account username example
$mail->Password   = "password";            // SMTP account password example

// Content
$mail->isHTML[true];                       // Set email format to HTML
$mail->Subject = 'Here is the subject';
$mail->Body    = 'This is the HTML message body in bold!';
$mail->AltBody = 'This is the body in plain text for non-HTML mail clients';

$mail->send[];

Bạn có thể tìm thêm về PHPMailer tại đây: //github.com/phpmailer/phpmailer

Đã trả lời ngày 22 tháng 1 năm 2013 lúc 10:46Jan 22, 2013 at 10:46

IVO Pereiraivo PereiraIvo Pereira

3.3511 Huy hiệu vàng18 Huy hiệu bạc24 Huy hiệu đồng1 gold badge18 silver badges24 bronze badges

6


Hoặc, để biết thêm chi tiết, đọc tiếp.

Ivan Akulov

4.2134 Huy hiệu vàng36 Huy hiệu bạc62 Huy hiệu Đồng4 gold badges36 silver badges62 bronze badges

Đã trả lời ngày 22 tháng 1 năm 2013 lúc 11:21Jan 22, 2013 at 11:21

Dipesh Parmardipesh ParmarDipesh Parmar

26.8K7 Huy hiệu vàng59 Huy hiệu bạc89 Huy hiệu đồng7 gold badges59 silver badges89 bronze badges

10

Đối với người dùng Unix, Mail [] thực sự đang sử dụng lệnh SendMail để gửi email. Thay vì sửa đổi ứng dụng, bạn có thể thay đổi môi trường. MSMTP là một máy khách SMTP với cú pháp CLI tương thích SendMail, điều đó có nghĩa là nó có thể được sử dụng thay cho SendMail. Nó chỉ đòi hỏi một thay đổi nhỏ cho php.ini của bạn.

sendmail_path = "/usr/bin/msmtp -C /path/to/your/config -t"

Sau đó, ngay cả hàm thấp [] có thể hoạt động với sự tốt lành của SMTP. Nó rất hữu ích nếu bạn đang cố gắng kết nối một ứng dụng hiện có với các dịch vụ gửi thư như SendGrid hoặc Mandrill mà không cần sửa đổi ứng dụng.

Đã trả lời ngày 2 tháng 12 năm 2013 lúc 21:52Dec 2, 2013 at 21:52

5

Vấn đề là chức năng PHP

[mail function]
; For Win32 only.
; //php.net/smtp
SMTP = localhost
; //php.net/smtp-port
smtp_port = 25

; For Win32 only.
; //php.net/sendmail-from
sendmail_from = 
5 có chức năng rất hạn chế. Có một số cách để gửi thư từ PHP.

  1. [mail function]
    ; For Win32 only.
    ; //php.net/smtp
    SMTP = localhost
    ; //php.net/smtp-port
    smtp_port = 25
    
    ; For Win32 only.
    ; //php.net/sendmail-from
    sendmail_from = 
    
    5 sử dụng máy chủ SMTP trên hệ thống của bạn. Có ít nhất hai máy chủ bạn có thể sử dụng trên Windows: Hmailserver và Xmail. Tôi đã dành vài giờ để cấu hình và đưa chúng lên. Đầu tiên là đơn giản hơn theo ý kiến ​​của tôi. Ngay bây giờ, Hmailserver đang làm việc trên Windows 7 x64.
    There are at least two servers you can use on Windows: hMailServer and xmail. I spent several hours configuring and getting them up. First one is simpler in my opinion. Right now, hMailServer is working on Windows 7 x64.
  2. [mail function]
    ; For Win32 only.
    ; //php.net/smtp
    SMTP = localhost
    ; //php.net/smtp-port
    smtp_port = 25
    
    ; For Win32 only.
    ; //php.net/sendmail-from
    sendmail_from = 
    
    5 sử dụng máy chủ SMTP trên máy ảo hoặc máy ảo với Linux. Tất nhiên, dịch vụ thư thật như Gmail không cho phép kết nối trực tiếp mà không có thông tin đăng nhập hoặc khóa. Bạn có thể thiết lập máy ảo hoặc sử dụng một cái nằm trong mạng LAN của bạn. Hầu hết các bản phân phối Linux đều có máy chủ thư ra khỏi hộp. Cấu hình nó và vui chơi. Tôi sử dụng EXIM4 mặc định trên Debian 7 lắng nghe giao diện LAN của nó.
    Of course, real mail service like Gmail doesn't allow direct connection without any credentials or keys. You can set up virtual machine or use one located in your LAN. Most linux distros have mail server out of the box. Configure it and have fun. I use default exim4 on Debian 7 that listens its LAN interface.
  3. Thư viện gửi thư sử dụng kết nối trực tiếp. LIB dễ dàng hơn để thiết lập. Tôi đã sử dụng SwiftMailer và nó hoàn toàn gửi thư từ tài khoản Gmail. Tôi nghĩ rằng phpmailer cũng khá tốt. Libs are easier to set up. I used SwiftMailer and it perfectly sends mail from Gmail account. I think that PHPMailer is pretty good too.

Bất kể lựa chọn nào là của bạn, tôi khuyên bạn nên sử dụng một số lớp trừu tượng. Bạn có thể sử dụng thư viện PHP trên máy phát triển của mình chạy Windows và chỉ đơn giản là

[mail function]
; For Win32 only.
; //php.net/smtp
SMTP = localhost
; //php.net/smtp-port
smtp_port = 25

; For Win32 only.
; //php.net/sendmail-from
sendmail_from = 
5 chức năng trên máy sản xuất với Linux. Lớp trừu tượng cho phép bạn trao đổi trình điều khiển thư tùy thuộc vào hệ thống mà ứng dụng của bạn đang chạy. Tạo lớp
[mail function]
; For Win32 only.
; //php.net/smtp
SMTP = localhost
; //php.net/smtp-port
smtp_port = 25

; For Win32 only.
; //php.net/sendmail-from
sendmail_from = 
9 Tóm tắt hoặc giao diện với phương thức Tóm tắt
$mail = new PHPMailer[];

// Settings
$mail->IsSMTP[];
$mail->CharSet = 'UTF-8';

$mail->Host       = "mail.example.com";    // SMTP server example
$mail->SMTPDebug  = 0;                     // enables SMTP debug information [for testing]
$mail->SMTPAuth   = true;                  // enable SMTP authentication
$mail->Port       = 25;                    // set the SMTP port for the GMAIL server
$mail->Username   = "username";            // SMTP account username example
$mail->Password   = "password";            // SMTP account password example

// Content
$mail->isHTML[true];                       // Set email format to HTML
$mail->Subject = 'Here is the subject';
$mail->Body    = 'This is the HTML message body in bold!';
$mail->AltBody = 'This is the body in plain text for non-HTML mail clients';

$mail->send[];
0. Kế thừa hai lớp
$mail = new PHPMailer[];

// Settings
$mail->IsSMTP[];
$mail->CharSet = 'UTF-8';

$mail->Host       = "mail.example.com";    // SMTP server example
$mail->SMTPDebug  = 0;                     // enables SMTP debug information [for testing]
$mail->SMTPAuth   = true;                  // enable SMTP authentication
$mail->Port       = 25;                    // set the SMTP port for the GMAIL server
$mail->Username   = "username";            // SMTP account username example
$mail->Password   = "password";            // SMTP account password example

// Content
$mail->isHTML[true];                       // Set email format to HTML
$mail->Subject = 'Here is the subject';
$mail->Body    = 'This is the HTML message body in bold!';
$mail->AltBody = 'This is the body in plain text for non-HTML mail clients';

$mail->send[];
1 và
$mail = new PHPMailer[];

// Settings
$mail->IsSMTP[];
$mail->CharSet = 'UTF-8';

$mail->Host       = "mail.example.com";    // SMTP server example
$mail->SMTPDebug  = 0;                     // enables SMTP debug information [for testing]
$mail->SMTPAuth   = true;                  // enable SMTP authentication
$mail->Port       = 25;                    // set the SMTP port for the GMAIL server
$mail->Username   = "username";            // SMTP account username example
$mail->Password   = "password";            // SMTP account password example

// Content
$mail->isHTML[true];                       // Set email format to HTML
$mail->Subject = 'Here is the subject';
$mail->Body    = 'This is the HTML message body in bold!';
$mail->AltBody = 'This is the body in plain text for non-HTML mail clients';

$mail->send[];
2. Thực hiện phương pháp
$mail = new PHPMailer[];

// Settings
$mail->IsSMTP[];
$mail->CharSet = 'UTF-8';

$mail->Host       = "mail.example.com";    // SMTP server example
$mail->SMTPDebug  = 0;                     // enables SMTP debug information [for testing]
$mail->SMTPAuth   = true;                  // enable SMTP authentication
$mail->Port       = 25;                    // set the SMTP port for the GMAIL server
$mail->Username   = "username";            // SMTP account username example
$mail->Password   = "password";            // SMTP account password example

// Content
$mail->isHTML[true];                       // Set email format to HTML
$mail->Subject = 'Here is the subject';
$mail->Body    = 'This is the HTML message body in bold!';
$mail->AltBody = 'This is the body in plain text for non-HTML mail clients';

$mail->send[];
0 theo những cách thích hợp.

Đã trả lời ngày 22 tháng 1 năm 2014 lúc 20:44Jan 22, 2014 at 20:44

George Sovetovgeorge SovetovGeorge Sovetov

4.6825 Huy hiệu vàng32 Huy hiệu bạc56 Huy hiệu Đồng5 gold badges32 silver badges56 bronze badges

Có một số máy chủ SMTP hoạt động mà không cần xác thực, nhưng nếu máy chủ yêu cầu xác thực, không có cách nào để phá vỡ điều đó.

Các chức năng thư tích hợp của PHP rất hạn chế - chỉ định máy chủ SMTP chỉ có thể trong Windows. Trên *Nix,

[mail function]
; For Win32 only.
; //php.net/smtp
SMTP = localhost
; //php.net/smtp-port
smtp_port = 25

; For Win32 only.
; //php.net/sendmail-from
sendmail_from = 
5 sẽ sử dụng các nhị phân của HĐH.

Nếu bạn muốn gửi e-mail đến máy chủ SMTP tùy ý trên mạng, hãy xem xét sử dụng thư viện như SwiftMailer. Điều đó sẽ cho phép bạn sử dụng, ví dụ, các máy chủ gửi đi của Google Mail.

Đã trả lời ngày 22 tháng 1 năm 2013 lúc 10:44Jan 22, 2013 at 10:44

PekkapekkaPekka

435K137 Huy hiệu vàng966 Huy hiệu bạc1080 Huy hiệu Đồng137 gold badges966 silver badges1080 bronze badges

Trong trường hợp bạn đang lưu trữ một trang web WordPress trên Linux và có quyền truy cập máy chủ, bạn có thể lưu một số vấn đề đau đầu bằng cách cài đặt MSMTP cho phép bạn gửi qua SMTP từ hàm Php Mail [] tiêu chuẩn. MSMTP là một sự thay thế đơn giản hơn cho Postfix đòi hỏi cấu hình hơn một chút.

Đây là các bước:

Cài đặt MSMTP

sudo apt-get install msmtp-mta ca-certificates

Tạo tệp cấu hình mới:

sudo nano /etc/msmtprc

... với thông tin cấu hình sau:

# Set defaults.
defaults

# Enable or disable TLS/SSL encryption.
tls on
tls_starttls on
tls_trust_file /etc/ssl/certs/ca-certificates.crt

# Set up a default account's settings.
account default
host 
port 587
auth on
user 
password 
from 
syslog LOG_MAIL

Bạn cần thay thế dữ liệu cấu hình được biểu thị bằng mọi thứ trong "" [bao gồm, xóa chúng]. Đối với máy chủ/tên người dùng/mật khẩu, hãy sử dụng thông tin đăng nhập thông thường của bạn để gửi thư qua nhà cung cấp thư của bạn.

Bảo PHP sử dụng nó

sudo nano /etc/php5/apache2/php.ini

Thêm dòng đơn này:

sendmail_path = /usr/bin/msmtp -t

Tài liệu đầy đủ có thể được tìm thấy ở đây:

//marlam.de/msmtp/

Đã trả lời ngày 28 tháng 9 năm 2018 lúc 2:34Sep 28, 2018 at 2:34

Peter Drinnanpeter DrinnanPeter Drinnan

4.2561 Huy hiệu vàng35 Huy hiệu bạc29 Huy hiệu đồng1 gold badge35 silver badges29 bronze badges

2

Đối với một cách tiếp cận khác, bạn có thể lấy một tệp như thế này:

[mail function]
; For Win32 only.
; //php.net/smtp
SMTP = localhost
; //php.net/smtp-port
smtp_port = 25

; For Win32 only.
; //php.net/sendmail-from
sendmail_from = 
0

Và gửi như thế này:

[mail function]
; For Win32 only.
; //php.net/smtp
SMTP = localhost
; //php.net/smtp-port
smtp_port = 25

; For Win32 only.
; //php.net/sendmail-from
sendmail_from = 
1

//php.net/function.curl-setopt

Đã trả lời ngày 3 tháng 8 năm 2020 lúc 22:56Aug 3, 2020 at 22:56

1

Tôi đã tạo một người gửi email SMTP nhẹ đơn giản cho PHP nếu có ai cần. Đây là URL:

//github.com/Nerdtrix/EZMAIL

Nó đã được thử nghiệm trong cả hai môi trường, sản xuất và phát triển.

Đã trả lời ngày 4 tháng 12 năm 2020 lúc 21:38Dec 4, 2020 at 21:38

Jerryurenaajerryurenaajerryurenaa

3.0001 Huy hiệu vàng19 Huy hiệu bạc15 Huy hiệu đồng1 gold badge19 silver badges15 bronze badges

Tôi biết đây là một câu hỏi cũ nhưng nó vẫn hoạt động và tất cả các câu trả lời tôi thấy cho thấy xác thực cơ bản, không được chấp nhận. Dưới đây là một ví dụ cho thấy cách gửi qua các máy chủ Gmail của Google bằng Phpmailer với xác thực XOAUTH2:

[mail function]
; For Win32 only.
; //php.net/smtp
SMTP = localhost
; //php.net/smtp-port
smtp_port = 25

; For Win32 only.
; //php.net/sendmail-from
sendmail_from = 
2

Tham khảo: Thư mục ví dụ PHPMailer

Đã trả lời ngày 20 tháng 1 lúc 22:08Jan 20 at 22:08

Php Mail có cần SMTP không?

Giao thức truyền đơn giản [SMTP] Tệp INI. Nhưng điều này sẽ chỉ hoạt động cho các giải pháp giống như localhost hoặc XAMPP vì như chúng tôi đã đề cập, hàm php mail [] không hỗ trợ xác thực SMTP và không cho phép gửi tin nhắn qua các máy chủ bên ngoài.PHP mail[] function does not support SMTP authentication and doesn't allow sending messages via external servers.

Php mail gửi email như thế nào?

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 ];

Phpmailer có sử dụng smtp không?

PHPMailer có thể sử dụng máy chủ thư không phải địa phương [SMTP] nếu bạn có xác thực.Những lợi thế hơn nữa bao gồm: Nó có thể in các loại thông báo lỗi khác nhau bằng hơn 40 ngôn ngữ khi không gửi email.Nó đã tích hợp hỗ trợ giao thức SMTP và xác thực qua SSL và TLS.. Further advantages include: It can print various kinds of error messages in more than 40 languages when it fails to send an email. It has integrated SMTP protocol support and authentication over SSL and TLS.

Php mail gửi từ đâu?

1. Sử dụng hàm php mail [].Hàm thư tích hợp của PHP [] là một trong những cách đơn giản nhất để gửi email trực tiếp từ chính máy chủ web.Nó chỉ cần ba tham số bắt buộc: địa chỉ email, chủ đề email và thân thông báo và gửi nó cho người nhận.the web server itself. It just takes three mandatory parameters: the email address, email subject and message body—and sends it to the recipient.

Bài Viết Liên Quan

Chủ Đề