php.ini & SMTP= - كيف يمكنك تمرير اسم المستخدم وكلمة المرور

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

  •  02-07-2019
  •  | 
  •  

سؤال

My ISP الحساب يتطلب أن أرسل اسم المستخدم وكلمة المرور الصادرة SMTP البريد.

كيف يمكنني الحصول على PHP لاستخدام هذا عند تنفيذ php.mail()? على php.ini الملف يحتوي على إدخالات الملقم (SMTP= ) و From: (sendmail_from= ).

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

المحلول

PHP mail() الأمر لا يدعم مصادقة.الخيارات الخاصة بك:

  1. PHPMailer- البرنامج التعليمي
  2. الكمثرى - البرنامج التعليمي
  3. وظائف مخصصة نرى العديد من الحلول في قسم الملاحظات: http://php.net/manual/en/ref.mail.php

نصائح أخرى

لا تنطبق المعلومات التالية على php.ini.به يعمل بشكل جيد.

SMTP = smtp.example.com
smtp_port = 25
username = info@example.com
password = yourmailpassord
sendmail_from = info@example.com

هذه التفاصيل هي نفسها كما في إعدادات outlook.

استخدام وهمية sendmail ويندوز لإرسال البريد.

  1. إنشاء مجلد باسم sendmail في C:\wamp\.
  2. استخراج هذه الملفات في 4 sendmail المجلد: sendmail.exe, libeay32.dll, ssleay32.dll و sendmail.ini.
  3. ثم تكوين C:\wamp\sendmail\sendmail.ini:
smtp_server=smtp.gmail.com
smtp_port=465
auth_username=user@gmail.com
auth_password=your_password
  1. أعلاه سوف تعمل ضد حساب Gmail.ثم تكوين php.ini:

    sendmail_path = "C:\wamp\sendmail\sendmail.exe -t"

  2. الآن إعادة تشغيل أباتشي ، و التي هي في الأساس كل ما عليك القيام به.

PHP لا يجب المصادقة على البريد الأوامر!

التالي هو العامل بالنسبة لي على WAMPSERVER (ويندوز, php 5.2.17)

php.ini

[mail function]
; For Win32 only.
SMTP = mail.yourserver.com
smtp_port = 25
auth_username = smtp-username
auth_password = smtp-password
sendmail_from = you@yourserver.com

أنا أفضل PHPMailer أداة كما أنها لا تتطلب الكمثرى.ولكن في كلتا الحالتين لديك سوء تفاهم:كنت لا تريد PHP-server-واسعة إعداد SMTP المستخدم وكلمة المرور.هذا ينبغي أن يكون في التطبيق (أو في صفحة) إعدادات.إذا كنت ترغب في استخدام نفس الحساب عبر مختلف صفحات PHP, إضافة إلى نوع من settings.php الملف.

بعد أن عمل طوال اليوم على هذا ، وأخيرا وجدت الحل.هنا كيف ترسل من نظام التشغيل Windows XP مع المزج.

  1. استخدام جوجل خادم SMTP.وربما كنت بحاجة إلى حساب.
  2. تحميل وتثبيت وهمية Sendmail.أنا فقط تحميل, محلول ووضعها في المزج مجلد.
  3. إنشاء اختبار ملف PHP.انظر أدناه.
<?php
    $message = "test message body";
    $result = mail('recipient@some-domain.com', 'message subject', $message);
    echo "result: $result";
?>
  1. تحديث php الخاص بك.ini و sendmail.ini (sendmail.ini في تنسخ مجلد).
  2. التحقق من الخطأ.ملف سجل في تنسخ المجلد الذي قمت بإنشائه إذا كان لا يعمل.

المرجع:

  1. تثبيت Postfix (تنسخ-متوافق).
  2. تحرير /etc/postfix/main.cf القراءة:
#Relay config
relayhost = smtp.server.net
smtp_use_tls=yes
smtp_sasl_auth_enable=yes
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
smtp_tls_CAfile = /etc/postfix/cacert.pem
smtp_sasl_security_options = noanonymous
  1. إنشاء /etc/postfix/sasl_passwd, أدخل:
smtp.server.net username:password
  1. نوع # /usr/sbin/postmap sasl_passwd

  2. ثم تشغيل: service postfix reload

الآن PHP سيتم تشغيل البريد كالعادة مع sendmail -t -i الأوامر و Postfix سوف اعتراض عليه و تتابع ذلك إلى ملقم SMTP الخاص بك الذي قمت بتوفيره.

استخدام البريد الإلكتروني::مصنع في البريد الكمثرى الحزمة. على سبيل المثال.

هذه الإجابات هي التي عفا عليها الزمن و المستهلكة.أفضل الممارسات..

composer require phpmailer/phpmailer

المقبل على الخاص sendmail.php الملف فقط تتطلب التالية

# use namespace
use PHPMailer\PHPMailer\PHPMailer;

# require php mailer
require_once "../vendor/autoload.php";

//PHPMailer Object
$mail = new PHPMailer;

//From email address and name
$mail->From = "from@yourdomain.com";
$mail->FromName = "Full Name";

//To address and name
$mail->addAddress("recepient1@example.com", "Recepient Name");
$mail->addAddress("recepient1@example.com"); //Recipient name is optional

//Address to which recipient will reply
$mail->addReplyTo("reply@yourdomain.com", "Reply");

//CC and BCC
$mail->addCC("cc@example.com");
$mail->addBCC("bcc@example.com");

//Send HTML or Plain Text email
$mail->isHTML(true);

$mail->Subject = "Subject Text";
$mail->Body = "<i>Mail body in HTML</i>";
$mail->AltBody = "This is the plain text version of the email content";

if(!$mail->send()) 
{
    echo "Mailer Error: " . $mail->ErrorInfo;
} 
else 
{
    echo "Message has been sent successfully";
}

هذا يمكن أن يكون تكوين كيف من أي وقت مضى كنت تحب..

النظر في إجابة واحدة في هذا السؤال, في PHP 4 الكمثرى البريد حزمة عادة مثبتة بالفعل, و هذا حقا بسيطة البرنامج التعليمي يظهر لك بضعة أسطر من التعليمات البرمجية التي تحتاج إلى إضافة إلى الملف الخاص بي http://email.about.com/od/emailprogrammingtips/qt/PHP_Email_SMTP_Authentication.htm

  1. تثبيت أحدث hMailServer."تشغيل hMailServer المسؤول" في الخطوة الأخيرة.
  2. الاتصال "localhost".
  3. "إضافة المجال..."
  4. مجموعة "127.0.0.1". كما "المجال" ، انقر فوق "حفظ".
  5. "إعدادات" > "البروتوكولات" > "SMTP" > "تسليم البريد الإلكتروني"
  6. مجموعة "localhost" باسم "اسم المضيف المحلي", توفير البيانات الخاصة بك في "SMTP Relayer" القسم, انقر فوق "حفظ".
  7. "إعدادات" > "خيارات متقدمة" > "نطاقات IP" > "جهاز الكمبيوتر"
  8. تعطيل "الخارجية الخارجية عناوين البريد الإلكتروني" خانة الاختيار في "تتطلب مصادقة SMTP" المجموعة.
  9. إذا كان لديك تعديل php.ini كتابة هذه القيم 3:

"SMTP = localhost" ،

"smtp_port = 25",

"; sendmail_path = ".

الائتمان: كيفية تكوين المزج (localhost) لإرسال البريد الإلكتروني باستخدام Gmail ؟

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