2013-06-13 42 views
5

Tôi đang sử dụng gmail SMTP để gửi thư với sự trợ giúp của thư viện phpmailer. Nó đang gửi thư tốt nhưng nó không gửi từ địa chỉ thư mà tôi đang thiết lập trong địa chỉ SetFrom. Đây là mã của tôi:SetFrom PHPMailer không hoạt động

<?php 
require 'phpmailer/class.phpmailer.php'; 
$mail = new PHPMailer; 

$mail->IsSMTP(); 
$mail->SMTPAuth = true; 
$mail->Host = "smtp.gmail.com"; 
$mail->Port = 587; 
$mail->Username = "[email protected]"; 
$mail->Password = "gmail_password"; 

$mail->From   = '[email protected]'; 
$mail->FromName  = 'Admin'; 
$mail->AddAddress('[email protected]', 'Receiver'); // Add a recipient 
$mail->IsHTML(true); 

$mail->Subject = 'Here is the Subject'; 
$mail->WordWrap = 50; 
$mail->Body = "This is in <b>Blod Text</b>"; 
$mail->AltBody = 'This is the body in plain text for non-HTML mail clients'; 

if(!$mail->Send()) { 
    echo 'Message could not be sent.'; 
    echo 'Mailer Error: ' . $mail->ErrorInfo; 
    exit; 
} 

echo 'Message has been sent'; 
?> 

Nó đang gửi thư từ [email protected] nhưng tôi muốn nó gửi với '[email protected]' như quy định trong $ mail-> Từ. Bất kỳ trợ giúp sẽ được đánh giá cao.

+1

Bạn đã đọc những gì google nói về [gửi email từ các địa chỉ khác nhau] (https://support.google.com/mail/answer/22370?hl=vi) – Anigel

+0

@Anigel: Giả sử bạn đang tạo liên hệ và gửi thư bằng phpmailer. Địa chỉ từ sẽ là những gì người dùng điền vào trường địa chỉ email và địa chỉ email sẽ là id email của bạn. Trong trường hợp đó, mọi thời gian cho những người dùng khác nhau, từEmail sẽ luôn khác nhau. Vì vậy, chúng ta cần phải đặt nó trong $ mail-> From. Đó là những gì tôi đang làm. Tôi không nghĩ rằng nó có bất cứ điều gì từ bài viết của liên kết của bạn. – prembaranwal

+5

Tôi không nghĩ rằng bạn đã đọc bài viết sau đó, Google nói rằng bạn chỉ có thể gửi từ các địa chỉ được định cấu hình trong tài khoản google của bạn. Bạn không thể đăng nhập như jo.bloggs và gửi email từ jane.doe Nếu bạn muốn làm những gì bạn vừa mô tả, thì bạn không thể sử dụng gmail SMTP, bạn sẽ phải sử dụng một máy chủ khác cho phép bạn gửi email với bất kỳ ai và bạn sẽ nhận được thư rác bị lọc hoặc bị chặn trên nhiều máy chủ thư vì máy chủ thư của BẠN sẽ không khớp với máy chủ thư thích hợp cho người dùng từ địa chỉ IE, nó sẽ không kiểm tra được SPF – Anigel

Trả lời

-2

Nâng cấp lên phiên bản PHPMailler mới nhất. Bạn cũng nên chắc chắn rằng bạn bật gỡ lỗi trong oder để xem tin nhắn erro.

$mail->SMTPDebug = 2; 

Bạn sẽ xác định lỗi. Đồng thời đảm bảo thông tin đăng nhập SMTP Server của bạn chính xác. Giống như máy chủ, tên người dùng và mật khẩu. Tôi đã làm việc chính xác

4

Có, đây là hạn chế của Google Mail. Địa chỉ email "Từ" phải khớp hoặc được đặt tự động theo cách của Google SMTP.

Giải pháp của tôi là để thêm

$mail->AddReplyTo($FromEmail, $FromName); 

Bằng cách này ít nhất nếu bạn trả lời tin nhắn này sẽ được gửi dưới dạng mô tả

3

Có một cách khác để thiết lập từ địa chỉ trong PHPMailer và nó là tốt hơn được hỗ trợ. Tôi thấy rằng máy chủ mà tôi sử dụng phpmailer đã không chuyển email đến một máy chủ khác từ cùng một máy chủ. Nhưng sau đó tôi thay đổi cách tôi thiết lập địa chỉ từ và nó giải quyết vấn đề.

Sử dụng:

$mail->SetFrom('[email protected]', 'Admin'); 

Thay vì $ mail-> Từ và $ mail-> FROMNAME.

+0

100% làm việc cảm ơn bạn! –

1

nếu bạn muốn sử dụng địa chỉ email khác như sentFrom, sau đó bạn có thể thiết lập email của bạn từ các thiết lập gmail:

cài đặt> Tài khoản và nhập khẩu> Gửi thư: thiết lập một email khác mà bạn muốn sử dụng như từ :

nếu bạn đang sử dụng zoho thì bạn có thể theo dõi: cài đặt> tab Thư> Gửi thư bằng địa chỉ> thêm từ địa chỉ rồi xác minh email đó.

Các vấn đề liên quan