$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.
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.[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.[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 =
- 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 =
0Và 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 =
2Tham 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