🔥 با کمک هوش مصنوعی در کمتر از 6 ماه فول‌استک شوید ...
۰ ثانیه
۰ دقیقه
۰ ساعت
۱۲ نوزر روستا
عدم ارسال ایمیل حتی با سرویس شکن
جامعه پی اچ پی ایجاد شده در ۲۴ مرداد ۱۴۰۲

درود و وقت بخیر من از سرویس شکن هم استفاده کردم ولی متاسفانه باز هم ارسال نمیشود

از try catch استفاده کردم و این ارور را داد .

Mailer Error: Could not instantiate mail function.

سلام ابراهیم عزیز

اطلاعات رو درست زدید؟

سورس کد پروژه رو دانلود کنید و با کد خودتون مقایسه کنید ببینید مشکلتون حل میشه.

$mail->isSMTP();

کدبالا رو نوشتید؟

این خط رو هم برای دیباگ اضافه کنید:

$mail->SMTPDebug = PHPMailer\\PHPMailer\\SMTP::DEBUG_SERVER;

لینک عیب یابی و مربوط به خطای شما

اُوژن ملکیان ۲۴ مرداد ۱۴۰۲، ۱۸:۵۳


require 'D:\\xamp\\htdocs\\7auth3\\7auth\\vendor\\autoload.php';
$phpmailer = new PHPMailer\\PHPMailer\\PHPMailer();
$phpmailer->isSMTP();
$phpmailer->Host = 'smtp.mailtrap.io';
$phpmailer->SMTPAuth = true;
$phpmailer->Port = 2525;
$phpmailer->Username = '8bcc2ebcadba88';
$phpmailer->Password = '53213e55e5d3d5';
$phpmailer->setFrom('exaple@gmail.com', '7auth project');
$phpmailer->addAddress('recipient@example.com');
$phpmailer->Subject = 'Subject of Email';
$phpmailer->isHTML(true);
$body = '
This is the HTML message body
';$phpmailer->Body = $body;
$phpmailer->SMTPDebug = PHPMailer\\PHPMailer\\SMTP::DEBUG_SERVER;
if (!$phpmailer->send()) {
  echo 'Mailer Error: ' . $phpmailer->ErrorInfo;
} else {
  echo 'Message sent!';
}


نوزر روستا ۲۵ مرداد ۱۴۰۲، ۰۵:۲۷

سلام،

کدتون رو تست کردم، مشکلی نداره و یک مسیج هم ارسال کردم که میتونید در Inbox ببینیدش.

مشکل عدم اتصال به سرور‌های smtp است.

شکن ظاهراً پورت‌های ایمیل رو بسته چون به هیچ پورتی متصل نشد. پس بدون شکن تست کنید. (من بدون فیلتر شکن ارسال کردم)

برای اینکه اتصال رو چک کنید با دستور زیر پورت‌های 25, 2525, 465, 587 رو تست کنید:

telnet smtp.mailtrap.io 2525

باید پیام 220 برگرده مانند چنین چیزی:

220 smtp.mailtrap.io ESMTP ready


نکته: در مورد require که بصورت full path (absolute path) در ابتدای کد انجام دادید، اول اینکه میتونستید بصورت relative مقداردهی کنید و نسبت به فایل‌های کناری مسیردهی میکردید، اما اگر هم خواستید بصورت کامل مقداردهی کنید بهتر است نکته ی Portability یا قابل حمل بودن رو در نظر داشته باشید. این نوع آدرس دهی فقط مخصوص ویندوز بوده و همچنین اگر پروژه جابجا شود هم مسیرش بهم میخورد زیرا که بصورت مطلق حتی درایو و پوشه‌ها هم نمیتوانند تغییری داشته باشند، بنابراین این روش سلوشن بهتری خواهد بود:

require __DIR__ . '/vendor/autoload.php';
// or
require dirname(__FILE__) . '/vendor/autoload.php';
// dirname(__FILE__) == __DIR__
زربانو بدخشانی ۲۶ مرداد ۱۴۰۲، ۰۴:۱۸

درود . کد ارسالی را کدوم بخش قرار بدم؟


نوزر روستا ۲۶ مرداد ۱۴۰۲، ۰۵:۳۶

متوجه سؤالتون نشدم.

زربانو بدخشانی ۲۶ مرداد ۱۴۰۲، ۰۵:۵۵
telnet smtp.mailtrap.io 2525

این کد رو منظورم هست . کجا قرار بدم؟


نوزر روستا ۲۶ مرداد ۱۴۰۲، ۰۷:۰۵

سلام، این کد رو باید توی ترمینالتون اجرا کنید که ببینید پورت با اینترنتتون باز میشه یا نه.

آراد ملایری ۲۶ مرداد ۱۴۰۲، ۰۸:۱۷

telnet : The term 'telnet' is not recognized as the name of a cmdlet, function, script file, or operable program. Check the spelling of the name, 

or if a path was included, verify that the path is correct and try again.

At line:1 char:1

+ telnet smtp.mailtrap.io 2525

+ ~~~~~~

  + CategoryInfo     : ObjectNotFound: (telnet:String) [], CommandNotFoundException

  + FullyQualifiedErrorId : CommandNotFoundException

نوزر روستا ۲۸ مرداد ۱۴۰۲، ۰۹:۲۷

telent رو نصب ندارید.

windows features رو باز کنید و تیک telnet client رو فعال کنید.

زربانو بدخشانی ۲۸ مرداد ۱۴۰۲، ۱۶:۴۴

2023-08-20 05:43:48 SERVER -> CLIENT:

SMTP connect() failed. https://github.com/PHPMailer/PHPMailer/wiki/Troubleshooting

Mailer Error: SMTP connect() الان این ارور رو برمیگردونه


نوزر روستا ۲۹ مرداد ۱۴۰۲، ۰۵:۴۴

مشکل کانکت به سرور دارید و از نتتون هست.

من کد شمارو تست کردم و هیچ مشکلی نداشته.

بهترین پاسخ
زربانو بدخشانی ۲۹ مرداد ۱۴۰۲، ۱۰:۱۶

ایا با فیلتر شکن وارد شوم حل میشه؟


نوزر روستا ۲۹ مرداد ۱۴۰۲، ۱۰:۳۰

باید تست کنید.

بنده لوکیشن فیلتر شکنم را قبول نکرد و بدون فیلتر شکن و همچنین بدون شکن (نت بنده شکن را هم قبول نکرد) ایمیل را ارسال کردم.

زربانو بدخشانی ۲۹ مرداد ۱۴۰۲، ۱۱:۴۰