2010-10-16 123 views
36

Tôi đang sử dụng PHPMailer trong Tập lệnh đơn giản để gửi email qua Gmail và tôi nhận được "Lỗi không xác định" (Ít nhất là cho tôi!):"Lỗi SMTP: Không thể xác thực" trong PHPMailer

SMTP Error: Could not authenticate. Error: SMTP Error: Could not authenticate.

SMTP server error: 5.7.1 Username and Password not accepted. Learn more at 535 5.7.1 http://mail.google.com/support/bin/answer.py?answer=14257 p38sm2467302ybk.16

Tôi đã đọc về Định cấu hình OpenSSL Đối với kết nối SSL/TLS và tôi đã làm điều đó. Apache và PHP được cấu hình đúng (Với phần mở rộng OpenSSL Chạy trong PHP và mod_ssl đang chạy trong Apache 2.2.16).

này là The PHP Script:

<?php 
    require_once ("PHPMailer\class.phpmailer.php"); 
    $Correo = new PHPMailer(); 
    $Correo->IsSMTP(); 
    $Correo->SMTPAuth = true; 
    $Correo->SMTPSecure = "tls"; 
    $Correo->Host = "smtp.gmail.com"; 
    $Correo->Port = 587; 
    $Correo->UserName = "[email protected]"; 
    $Correo->Password = "gmailpassword"; 
    $Correo->SetFrom('[email protected]','De Yo'); 
    $Correo->FromName = "From"; 
    $Correo->AddAddress("[email protected]"); 
    $Correo->Subject = "Prueba con PHPMailer"; 
    $Correo->Body = "<H3>Bienvenido! Esto Funciona!</H3>"; 
    $Correo->IsHTML (true); 
    if (!$Correo->Send()) 
    { 
    echo "Error: $Correo->ErrorInfo"; 
    } 
    else 
    { 
    echo "Message Sent!"; 
    } 
?> 

Các Username và Password là OK, Và tôi đã cố gắng trong Thunderbird, mà không cần bất kỳ vấn đề. Tôi cũng đã sử dụng Xác thực SSL và Cổng 465, nhận được cùng Lỗi.

+0

Điều này là lạ, vì lỗi khá rõ ràng trỏ đến lỗi tên người dùng/mật khẩu thay vì vấn đề giao thức. Bạn không có ký tự đặc biệt nào trong mật khẩu có thể bị chuyển nhầm? –

Trả lời

17

Hãy thử điều này thay vì:

$ Correo->Tên đăng nhập = "[email protected]";

Tôi đã thử nghiệm nó và làm việc của mình một cách hoàn hảo mà không có sự thay đổi khác

+0

@Astantler bạn có thể đánh dấu câu trả lời của mình là được chấp nhận bằng cách sử dụng biểu tượng dấu kiểm ở bên trái. –

3

tôi nhận được lỗi này vì dấu hiệu phần trăm trong mật khẩu.

7

Tôi đã nhận được lỗi tương tự và trong mycase đó là mật khẩu. Mật khẩu của tôi có các ký tự đặc biệt và nếu bạn cung cấp mật khẩu mà không thoát khỏi các ký tự đặc biệt, lỗi sẽ tiếp tục hiển thị. Ví dụ: $mail->Password = " por$ch3"; hợp lệ nhưng sẽ không hoạt động bằng cách sử dụng mã ở trên. Giải pháp phải như sau: $mail->Password = "por\$ch3"; Lưu ý dấu gạch chéo ngược tôi đã đặt trước ký tự đô la trong mật khẩu của mình. Điều đó sẽ làm việc nếu bạn có một mật khẩu bằng ký tự đặc biệt

+0

Bạn chỉ có thể sử dụng dấu nháy đơn. Chỉ có báo giá duy nhất chính nó sẽ phải được thoát. –

17

this is GMail issue

đọc Trợ giúp của Google này (https://support.google.com/mail/answer/14257?p=client_login&rd=1)

  1. Mở trình duyệt web của bạn và đăng nhập vào Gmail tại http://mail.google.com/mail. Nếu bạn thấy yêu cầu xác minh từ, hãy nhập các chữ cái trong hình bị méo và hoàn tất đăng nhập.
  2. Đóng trình duyệt của bạn và thử truy cập lại vào thư trong ứng dụng email của bạn.
  3. Nếu bạn vẫn gặp sự cố, hãy truy cập http://www.google.com/accounts/DisplayUnlockCaptcha và đăng nhập bằng tên người dùng và mật khẩu Gmail của bạn. Nếu cần, hãy nhập các chữ cái trong hình bị méo.
  4. Nhấp vào Tiếp tục.
  5. Khởi động lại ứng dụng thư khách của bạn và thử truy cập lại vào thư trong ứng dụng email của bạn.

SMTP Error: Could not authenticate

Gmail issue

+0

có thể yêu cầu bạn phải đợi một vài phút, không hoạt động ngay lập tức cho tôi ... nhấn tiếp tục hai lần. – enko

4

Đối với tôi, tôi đã có một ký tự đặc biệt trong lĩnh vực mật khẩu của tôi, và tôi đặt nó như $ mail-> Password = "por $ CH3" mà làm việc cho máy chủ gmail SMPT nhưng không cho người khác; vì vậy tôi chỉ thay đổi dấu nháy kép thành dấu nháy đơn và nó hoạt động cho tôi. $ mail-> Mật khẩu = 'por $ ch3';

+0

Tôi hy vọng bạn vẫn không sử dụng mật khẩu đó vì 1. Bạn vừa cung cấp nó cho Internet ở mức độ lớn 2. Hoàn toàn không an toàn. https://dl.dropboxusercontent.com/u/209/zxcvbn/test/index.html –

+0

để biết rõ hơn, đó chỉ là ví dụ –

2

Nếu bạn vẫn gặp lỗi khi gửi email, với cùng thông báo lỗi.Hãy thử điều này:

$mail->SMTPSecure = 'tls'; 
$mail->Host = 'smtp.gmail.com'; 

chỉ Trước khi dòng:

$send = $mail->Send(); 

hoặc theo nghĩa khác, trước khi gọi các chức năng Gửi().

Đã kiểm tra và làm việc.

0

Tôi đã gặp sự cố tương tự với xác thực. Cách khắc phục là thiết lập quy trình xác minh 2 bước và tạo mật khẩu dành riêng cho thiết bị (thông báo lỗi để chặn thiết bị sẽ xuất hiện trong cài đặt tài khoản của bạn -> "Thông báo và cảnh báo" nếu bạn gặp vấn đề với tôi)

41

Tôi gặp sự cố này. Để làm việc đó, tôi phải truy cập myaccount.google.com -> "Đăng nhập & bảo mật" -> "Ứng dụng có quyền truy cập tài khoản" và chuyển "Cho phép ứng dụng kém an toàn" thành "BẬT" (gần cuối trang).

enter image description here

+2

Tôi rất tiếc vì phản hồi muộn. Đối với những người bạn không thể xem hộp thoại Cho phép ứng dụng kém an toàn hơn. 1. Truy cập tài khoản của bạn 2. Ứng dụng và trang web được kết nối (tab đăng nhập và bảo mật) 3. Bạn sẽ thấy ba tab trong 'Ứng dụng và trang web được kết nối'. Nhưng nếu bạn chỉ thấy - 'Ứng dụng được kết nối với tài khoản của bạn' và 'Mật khẩu đã lưu'. 4. Trên thanh bên, hãy nhấp vào 'Đăng nhập vào Google' - Tắt quy trình xác minh 2 bước của bạn. 5. Bây giờ bạn sẽ thấy ứng dụng Cho phép ít an toàn hơn. Bật nếu Bật. – Beekeeper

+0

Tôi chưa thấy phần Cho phép ứng dụng kém an toàn hơn nhưng Mật khẩu ứng dụng. Thông tin khác https://support.google.com/accounts/answer/185833?hl=vi – guido

+0

Cảm ơn rất nhiều. Điều này làm việc trong trường hợp của tôi. –

0

Đó là vấn đề selinux. Tôi vừa cập nhật phần dưới đây trong/etc/selinux/config file SELINUX=permissive (SELINUX = thực thi trước đó). sau đó chỉ cần khởi động lại hệ thống bằng cách cung cấp khởi động lại Bây giờ thư đi mà không gặp bất kỳ rắc rối nào. Cấu hình

From Email Address : [[email protected]] 
From Name : [your domain name] 
SMTP Host : smtp.gmail.com 
Type of Encryption : SSL 
SMTP Port : 465 
SMTP Authentication : YES 
Username : [your mail id] 
Password : [your password] 
2

tôi đã cùng một vấn đề và đã làm tất cả những lời khuyên trong đó có thiết lập Gmail (ví dụ các ứng dụng kém an toàn truy cập) không có may mắn. Nhưng cuối cùng khi tôi đổi mật khẩu thành thứ gì đó khác, vì lý do nào đó nó đã hoạt động! FYI, mật khẩu ban đầu không có bất kỳ ký tự đặc biệt nào.

2

[SOLVED]. Tôi đã gặp lỗi tương tự khi định cấu hình plugin WP-Mail-SMTP trong Wordpress.

Sự cố sẽ tiếp tục ngay cả khi tôi đã 'kiểm tra kỹ' cài đặt và thông tin xác thực đăng nhập và có thể đăng nhập theo cách thủ công bằng trình duyệt.

Có danh sách các bước bạn có thể thực hiện để khắc phục sự cố này.

  1. Tạo một mật khẩu mới cho tài khoản Gmail bạn muốn sử dụng
  2. Bật ứng dụng kém an toàn trong Google Security settings
  3. Sử dụng Display Unlock Captcha page để cung cấp cho ứng dụng hoặc trang web của bạn cho phép đăng nhập vào Gmail. Nhấp vào Continue hoặc làm theo hướng dẫn.
  4. Đăng nhập bằng ứng dụng hoặc trang web. Cài đặt smtp phù hợp với tôi là 1) Máy chủ SMTP: smtp.gmail.com 2) Cổng SMTP: 587 3) Mã hóa: TLS 4) Xác thực: Xác thực SMTP 5) Tên người dùng: [email protected] 6) Mật khẩu: exampleecret
+0

Bạn không cần bật Chuyển tiếp, POP hoặc IMAP trong Gmail để làm việc này. – Red

0

SMTP Lỗi: không thể xác thực tôi đã cùng một vấn đề. Các bước khắc phục sự cố sau đây đã giúp tôi.

  • Tôi đã tắt xác thực hai yếu tố trong tài khoản gmail của mình.
  • Tôi đã cho phép các ứng dụng kém an toàn hơn truy cập vào tài khoản gmail của mình. Để làm cho nó hoạt động, tôi phải đi đến myaccount.google.com ->Sign-in & security ->Apps with account access và chuyển Allow less secure apps thành ON (gần cuối trang).
  • Ở bước này, khi tôi cố đăng ký người dùng, tôi sẽ gặp lỗi tương tự. Google sẽ gửi cho tôi thông báo cảnh báo rằng ai đó có mật khẩu của tôi và thông tin đăng nhập đã bị chặn.
  • Sau đó, Gmail sẽ cung cấp cho bạn các tùy chọn. Bạn có thể nhấp vào xem hoạt động đó có phải của bạn hay không của bạn. Nhấp vào tùy chọn hoạt động là của bạn.
  • Thử đăng ký lại. Nó bây giờ sẽ hoạt động.
Các vấn đề liên quan