यह मेरे पुराने सर्वर में पूरी तरह से काम करता है।
2020-07-18 16:37:45 एसएमटीपी त्रुटि: सर्वर से कनेक्ट करने में विफल: कनेक्शन का समय समाप्त (110) एसएमटीपी कनेक्ट () विफल रहा। https://github.com/PHPMailer/PHPMailer/wiki/Troubleshooting मैं अब CentOS 7 और php7.3.2 का उपयोग कर रहा हूँ
मैंने जो कोशिश की है।
- पोर्ट 587,465,25 . का उपयोग करें
- होस्ट smtp.gmail.com,108.177.122.108 . का उपयोग करें
यह मेरा कोड है:
<?php
require_once "config.php";
use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\SMTP;
use PHPMailer\PHPMailer\Exception;
require 'vendor/autoload.php';
function generateRandomString($length = 10) {
$characters = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
$charactersLength = strlen($characters);
$randomString = '';
for ($i = 0; $i < $length; $i++) {
$randomString .= $characters[rand(0, $charactersLength - 1)];
}
return $randomString;
}
if($_SERVER["REQUEST_METHOD"] == "POST"){
$randompassword = generateRandomString();
$email = $_POST['email'];
$mail = new PHPMailer(true);
try {
$connect->query("SET NAMES 'utf8'");
$insertSql = "INSERT INTO users (username, password, email, forgot) VALUES ('$name', '$randompassword', '$email', 1)";
$status = $connect->query($insertSql);
$mail->isSMTP(); // Send using SMTP
$mail->SMTPAuth = true;
$mail->Host = 'smtp.gmail.com'; // Set the SMTP server to send through
$mail->SMTPAuth = true; // Enable SMTP authentication
$mail->Username = 'username@gmail.com'; // SMTP username
$mail->Password = '*******'; // SMTP password
$mail->SMTPSecure = PHPMailer::ENCRYPTION_STARTTLS; // Enable TLS encryption; `PHPMailer::ENCRYPTION_SMTPS` encouraged
$mail->Port = 587; // TCP port to connect to, use 465 for `PHPMailer::ENCRYPTION_SMTPS` above
$mail->Charset = "UTF-8";
$mail->setFrom('username@gmail.com', 'Mailer');
$mail->addAddress($email); // Name is optional
$mail->addReplyTo('to@gmail.com', 'to'); // Set email format to HTML
$mail->Subject = 'subject';
$mail->Body = 'body'
$mail->send();
echo '<script>alert("already send");</script>';
}
catch (Exception $e) {
echo "<script>alert('error');</script>";
echo !extension_loaded('openssl')?"Not Available":"Available";
exit;
}
}
?>
अपडेट करें
मैं पोर्ट 25 465 587 के लिए telnet smtp.gmail.com का परीक्षण करता हूं, परिणाम भी कनेक्शन समय समाप्त हो जाता है। फिर मैं अपने कंप्यूटर पर परीक्षण करता हूं तो सामान्य परिणाम मिलता है।
2 जवाब
मैं एक लाइनोड सर्वर का उपयोग कर रहा हूं, उन्होंने पोर्ट 25, 465, 587 को ब्लॉक कर दिया है, इसलिए मैं मेल और टेलनेट smtp.gmail.com नहीं भेज सकता। अधिक जानकारी के लिए, यहां क्लिक करें। ए>
नेटवर्क की समस्या। फ़ायरवॉल उन पोर्ट को ब्लॉक कर रहा है। आश्चर्य है कि यह एसएसएल पोर्ट को भी अवरुद्ध कर रहा है। एक बार जब आप इसे हल कर लेते हैं, तो आपको जाने के लिए अच्छा होना चाहिए। एक विकल्प के रूप में, आप SMTP सर्वर पर पोर्ट को एक कस्टम पोर्ट में बदल सकते हैं जिसे आपका प्रदाता आपको उपयोग करने की अनुमति देगा (25000, 25252, आदि)।
संबंधित सवाल
नए सवाल
php
PHP एक व्यापक रूप से उपयोग किया जाता है, उच्च-स्तरीय, गतिशील, वस्तु-उन्मुख, और व्याख्या की गई स्क्रिप्टिंग भाषा मुख्य रूप से सर्वर-साइड वेब विकास के लिए डिज़ाइन की गई है। PHP भाषा के बारे में सवालों के लिए इस्तेमाल किया।