PDA

View Full Version : سوال: مشکل در ارسال ایمیل با کلاس PhpMailer



Ali_Sedaghat
دوشنبه 08 دی 1399, 19:29 عصر
سلام دوستان
متأسفانه با کلاس PhpMailer و از طریق Smtp جیمیل نمی تونم ایمیل ارسال کنم و مدام پیام خطای SMTP Error: Could not authenticate رو بهم میده.
آدرس جیمیل و رمز رو درست وارد می کنم اما نمی دونم چرا این ارور رو میده.
حتی در قسمت Forwarding and POP/IMAP هر دویPOP و IMAP رو هم فعال کردم
هم چنین قسمت Less secure app access رو هم روی On قرار دادم ولی باز هم ارور رو بهم میده.
کدی که من استفاده می کنم اینه:


<html>
<meta charset="utf-8">
<title>Send Mail</title>
<body>
<?php
require_once('phpmailer/class.phpmailer.php');
$Mail = new PHPMailer(true);
$Mail -> IsSMTP();
if (isset($_POST['Submit']))
{
try
{
$Mail -> Host = 'smtp.gmail.com';
$Mail -> SMTPDebug = 3;
$Mail -> SMTPAuth = true;
$Mail -> SMTPSecure = "tls";
$Mail -> Port = 587;
$Mail -> Username = "My Gmail";
$Mail -> Password = "My Gmail Password";
$Mail -> AddAddress ($_POST['To']);
$Mail -> SetFrom ("My Gmail", "My Name");
$Mail -> Subject = $_POST['Subject'];
$Mail -> Charset = "UTF-8";
$Mail -> ContentType = "text/html";
$Mail -> MsgHTML ($_POST['Message']);
$Mail -> Send();
echo '<font color="#00cc00" size="2" face="tahoma">ایمیل با موفقیت ارسال شد</font>';
}
catch (phpmailerException $e)
{
echo $e -> errorMessage();
}
catch (Exception $e)
{
echo $e -> getMessage();
}
}
?>
<form id="Form" action="" method="post" style="border:2px solid #03F; width:350px; margin-left:400px;">
<table width="400">
<tr>
<td style="text-align: center">To:</td>
<td><input type="email" name="To" id="To" style="border:2px solid #060"></input></td>
</tr>
<tr>
<td style="text-align: center">Subject:</td>
<td><input type="text" name="Subject" id="Subject" style="border:2px solid #060"></input></td>
</tr>
<tr>
<td style="text-align: center">Message:</td>
<td><textarea name="Message" id="Message" cols="30" rows="5" style="border:2px solid #060"></textarea></td>
</tr>
<tr>
<td colspan="2"><input type="submit" name="Submit" id="Submit" value="Send"></input></td>
</tr>
</table>
</form>
</body>
</html>

به جای تابع require_once از این دستور هم استفاده کردم:
include "phpmailer/class.phpmailer.php";
از ssl و پورت مربوطه هم استفاده کردم.
ولی باز هم جواب نداد و همون پیام SMTP Error: Could not authenticate برام ظاهر می شد.
ممنون میشم راهنمایی کنید.
با احترام.

Ali_Sedaghat
سه شنبه 09 دی 1399, 00:22 صبح
با گشتن توی سایت های خارجی، مشکل رو حل کردم.