PHP mail() على ويندوز:لا أخطاء البريد الإلكتروني لا يتم إرسالها

StackOverflow https://stackoverflow.com/questions/1606086

سؤال

أنا حاليا في محاولة لتصحيح الغ القائمة على الموقع (لم تطويره) وأود أن إرسال رسائل البريد الإلكتروني مباشرة من التنمية المحلية آلة (ويندوز إكس بي).أنا على التوالي المزج مع Apache 2.2.11 و PHP 5.3.0

بعد بعض البحث, أبسط الحلول التي جئت عبر هو استخدام وهمية sendmail إلى الأمام إلى GMail/Google apps عبر SMTP والسماح لها القيام إرسال.المشكلة هي أن أحصل على أي أخطاء على الإطلاق, ولكن البريد الإلكتروني التي لم يتم إرسالها.

هنا هو ما فعلته:

  • نسخ sendmail.exe و sendmail.ini إلى مجلد فرعي في المزج
  • تكوينه عبر sendmail.ini (إعدادات التكوين موافق)
  • تحرير php.ini لإضافة مسار sendmail.exe
    sendmail_path = "C:\Program Files\wamp\bin\sendmail\sendmail.exe -t"
  • علق بها نوافذ إعدادات SMTP في php.ini
    ; SMTP = localhost
    ; smtp_port = 25
    ; sendmail_from = xxx@domain.com
    ; mail.force_extra_parameters =

البريد.يظهر ملف السجل التالي:

mail() on [C:\Program Files\wamp\www\mail.php:9]: To: xxx -- 
Headers: From: xxx  Reply-To: xxx  X-Mailer: PHP/5.3.0

أعتقد أن المشكلة هي أن ويندوز الافتراضي خيار (تحديد الملقم و لا تنسخ فائدة) لا تنقضها.في phpinfo() أنا لا يزال الحصول على SMTP -> localhost و smtp_port -> 25 الخيارات على الرغم من أنني وعلق عليها.

إذا كان أي شخص تمكن من الحصول على هذا العمل ، أقدر لك بعض المساعدة.في رأيي, باستخدام وهمية sendmail هو أبسط بكثير من تثبيت ملقم البريد على الجهاز الخاص بك.

وذلك بفضل!

P. S.من فضلك لا توحي PHPMailer وما شابه ذلك ، لأنني يجب أن استخدام البريد() وظيفة.هكذا الغ يعمل.

هل كانت مفيدة؟

المحلول

لقد حصلت عليه للعمل في نهاية المطاف.كانت المشكلة أن كان لدى PHP خطأ في تحليل ملفات .ini بمسافات في المسار (لـ sendmail).تم إصلاح المشكلة في الإصدار 5.3.0، لكن الدليل لم يكن لديه معلومات حول هذا الأمر.

لذا، نعم، من الممكن استخدام sendmail مع PHP على نظام التشغيل Windows :D.

شكرا لكم جميعا على وقتك!

نصائح أخرى

تأكد من تشغيل خدمة SMTP على الجهاز المحلي و أن منفذ SMTP(25) فتح.

يكون الاختيار على الخدمات (تشغيل->الخدمات.msc) والبحث عن إرسال البريد نقل

إذا كنت لا يمكن العثور على SMTP في قائمة الخدمات ، يجب تثبيته:إلى إضافة ، تشغيل->appwiz.cpl->إضافة إزالة مكونات Windows->IIS->التفاصيل -- >SMTP

لست متأكدًا مما إذا كان هذا يساعد أم لا، ما كنت أفعله في هذه السيناريوهات هو الإعداد والتوقعات على جهازي وضبطه لتلقي رسائل البريد الإلكتروني من النافذة كل 5 دقائق أو نحو ذلك، وبهذه الطريقة تمت مصادقة عنوان IP/الجهاز الخاص بي ضد البوب ​​وإذا قمت فقط بتعيين:

SMTP = localhost
smtp_port = 25

في php.ini، عملت وظيفة البريد بشكل جيد.لذا، في حالتك، ما عليك سوى ضبط توقعاتك للعمل باستخدام ملف pop واستخدام smtp في php.ini ونأمل أن يعمل.لم أختبر هذا على الرغم من GMail.

ملاحظة.من فضلك لا تقترح PHPMailer وما شابه، لأنه يجب علي استخدام وظيفة mail().هذه هي الطريقة التي يعمل بها Elgg.

...إلا إذا كنت تستخدم مكونًا إضافيًا يغير هذا السلوك:
http://community.elgg.org/pg/plugins/costelloc/read/16498/phpmailer

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top