اعدادات ال mail funcation

aml • منذ 8 سنوات

السلام عليكم ورحمة الله وبركاته 

بالبدايه شاكره تعاونكم واسف على ازعاجكم بكثرة الاسئله 

جربت اكواد كثيره لارسال ايميل الى ايميل شخص اخر لكن عندي مشكلة في mail funcation ماترسل ولايطلع خطا منشان اعرف وين ف قريت يقول من عن طريق php.ini تغيرين الاعدادات بس ماعرفت وش اعدل علما ان جهازي ماك؟؟

فكرتي للتوضيح :ابغى موظف يرسل للموظف اخر ايميل عن طريق الموقع ؟؟

واحتاجها ضروري  ف راح ارفق لكم صوره من ini.php 

شاكره لكم وجزاكم الله خير 

mial funcation .png

كلمات دليلية:

ساعد بالإجابة

"إن في قضاء حوائج الناس لذة لا يَعرفها إلا من جربها، فافعل الخير مهما استصغرته فإنك لا تدري أي حسنة تدخلك الجنة."

الإجابات (5)

Ali Majrashi • منذ 8 سنوات

عشان نقدر نرسل من اجهزتنا باستخدام دالة mail لازم نعدل باعدادات Postfix لمستخدمي mac و linux ونتاكد ان Postfix شغال بدون مشاكل بعدها نعدل php.ini ونحط مسار Postfix داخل sendmail_path ونشيل ; الي قبلها عشان تصير فعاله لما نعيد تشغيل السيرفر المحلي 

راح احاول احلها عندي بجهازي وان ضبطت بدون مشاكل شاركتك الحل هنا باذن الله

Ali Majrashi • منذ 8 سنوات

مثل ماقلت سابقا لازم نتأكد من إعدادات Postfix وهو المسؤل عن ارسال الرسائل من الجهاز الشخصي لمستخدمي mac و linux وانه يعمل بدون مشاكل وراح نستخدم حساب gmail وعن طريقه نقدر نرسل من الجهاز بدون مشاكل 

اولا نعدل على ملف اعدادات Postfix 

عن طريق Terminal نكتب 

sudo vi /etc/postfix/main.cf

راح يفتح ملف الاعدادات بمحرر Vim ننزل لاخر الملف ثم نضغط على زر i في الكيبورد عشان ندخل وضع التحرير بمحرر Vim 

وبعدها ننسخ ونلصق هالاعدادات 

### My Special Postfix Config ###
mydomain_fallback = localhost
mail_owner = _postfix
setgid_group = _postdrop
#Gmail SMTP
relayhost=smtp.gmail.com:587
# Enable SASL authentication in the Postfix SMTP client.
smtp_sasl_auth_enable=yes
smtp_sasl_password_maps=hash:/etc/postfix/sasl_passwd
smtp_sasl_security_options=noanonymous
smtp_sasl_mechanism_filter=plain
# Enable Transport Layer Security (TLS), i.e. SSL.
smtp_use_tls=yes
smtp_tls_security_level=encrypt
tls_random_source=dev:/dev/urandom

وبعدها نضغط على زر esc - هروب من الكيبورد وبعدها مباشرة نكتب :q بالكيبورد ونضغط زر الرجوع - enter عشان نقفل الملف ونحفظ التعديلات بنفس الوقت 

ثم عن طريق Terminal ايضا نكتب هالامر  لانشاء ملف sasl_passwd

sudo vi /etc/postfix/sasl_passwd

وظيفة هالامر انشاء ملف جديد يحتوي على بيانات gmail الخاصة فينا ونستخدمها لارسال الرسائل عن طريق Gmail SMTP

بداخل هالملف نكتب 

smtp.gmail.com:587 [email protected]:your_password

نغير البريد الالكترني ونكتب البريد الخاص فينا بدل [email protected] وايضا نغير الباسورد ونكتبه مكان your_password

وبعدها نضغط على زر esc - هروب من الكيبورد وبعدها مباشرة نكتب :q بالكيبورد ونضغط زر الرجوع - enter عشان نقفل الملف ونحفظ التعديلات بنفس الوقت

ثم عن طريق Terminal ايضا نكتب 

sudo postmap /etc/postfix/sasl_passwd

راح يقوم هالامر بانشاء ملف Postfix lookup table خاص بملف sasl_passwd الي حفظنا فيه اعدادات gmail الخاصة فينا

بعدها عن طريق Terminal نعيد تشغيل postfix بواسطة هالامر

sudo postfix reload

بعد مايعيد التشغيل نجرب ونرسل اميل تجريبي عن طريق Terminal بواسطة هالامر

date | mail -s testing [email protected]

 مع مراعاة تغيير [email protected] الى بريدك الشخصي مو شرط gmail اهم شي بريد يعمل وصحيح

لمعرفة الاميلات بقائمة الانتظار عن طريق Terminal نكتب هالامر

mailq

وبعد مانتاكد ان كل شي شغال بدون مشاكل نروح لاعدادات php.ini ونبحث عن 


sendmail_path =

غالبا راح تحصل قدامها فاصلة منقوطة ; نحذفها وبعد علامة = نحط مسار postfix الصحيح لاستخدامه بالارسال كالتالي

sendmail_path = "env -i /usr/sbin/sendmail -t -i"

نحفظ التعديلات ثم نعيد تشغيل السيرفر المحلي

بعدها باذن الله راح تشتغل دالة mail وراح تقدر ترسل من جهازك بدون مشاكل 

aml • منذ 8 سنوات
12 ساعات مضت, Ali Majrashi said:

مثل ماقلت سابقا لازم نتأكد من إعدادات Postfix وهو المسؤل عن ارسال الرسائل من الجهاز الشخصي لمستخدمي mac و linux وانه يعمل بدون مشاكل وراح نستخدم حساب gmail وعن طريقه نقدر نرسل من الجهاز بدون مشاكل 

اولا نعدل على ملف اعدادات Postfix 

عن طريق Terminal نكتب 


sudo vi /etc/postfix/main.cf

راح يفتح ملف الاعدادات بمحرر Vim ننزل لاخر الملف ثم نضغط على زر i في الكيبورد عشان ندخل وضع التحرير بمحرر Vim 

وبعدها ننسخ ونلصق هالاعدادات 


### My Special Postfix Config ###
mydomain_fallback = localhost
mail_owner = _postfix
setgid_group = _postdrop
#Gmail SMTP
relayhost=smtp.gmail.com:587
# Enable SASL authentication in the Postfix SMTP client.
smtp_sasl_auth_enable=yes
smtp_sasl_password_maps=hash:/etc/postfix/sasl_passwd
smtp_sasl_security_options=noanonymous
smtp_sasl_mechanism_filter=plain
# Enable Transport Layer Security (TLS), i.e. SSL.
smtp_use_tls=yes
smtp_tls_security_level=encrypt
tls_random_source=dev:/dev/urandom

وبعدها نضغط على زر esc - هروب من الكيبورد وبعدها مباشرة نكتب :q بالكيبورد ونضغط زر الرجوع - enter عشان نقفل الملف ونحفظ التعديلات بنفس الوقت 

ثم عن طريق Terminal ايضا نكتب هالامر  لانشاء ملف sasl_passwd


sudo vi /etc/postfix/sasl_passwd

وظيفة هالامر انشاء ملف جديد يحتوي على بيانات gmail الخاصة فينا ونستخدمها لارسال الرسائل عن طريق Gmail SMTP

بداخل هالملف نكتب 


smtp.gmail.com:587 [email protected]:your_password

نغير البريد الالكترني ونكتب البريد الخاص فينا بدل [email protected] وايضا نغير الباسورد ونكتبه مكان your_password

وبعدها نضغط على زر esc - هروب من الكيبورد وبعدها مباشرة نكتب :q بالكيبورد ونضغط زر الرجوع - enter عشان نقفل الملف ونحفظ التعديلات بنفس الوقت

ثم عن طريق Terminal ايضا نكتب 


sudo postmap /etc/postfix/sasl_passwd

راح يقوم هالامر بانشاء ملف Postfix lookup table خاص بملف sasl_passwd الي حفظنا فيه اعدادات gmail الخاصة فينا

بعدها عن طريق Terminal نعيد تشغيل postfix بواسطة هالامر


sudo postfix reload

بعد مايعيد التشغيل نجرب ونرسل اميل تجريبي عن طريق Terminal بواسطة هالامر


date | mail -s testing [email protected]

 مع مراعاة تغيير [email protected] الى بريدك الشخصي مو شرط gmail اهم شي بريد يعمل وصحيح

لمعرفة الاميلات بقائمة الانتظار عن طريق Terminal نكتب هالامر


mailq

وبعد مانتاكد ان كل شي شغال بدون مشاكل نروح لاعدادات php.ini ونبحث عن 



sendmail_path =

غالبا راح تحصل قدامها فاصلة منقوطة ; نحذفها وبعد علامة = نحط مسار postfix الصحيح لاستخدامه بالارسال كالتالي


sendmail_path = "env -i /usr/sbin/sendmail -t -i"

نحفظ التعديلات ثم نعيد تشغيل السيرفر المحلي

بعدها باذن الله راح تشتغل دالة mail وراح تقدر ترسل من جهازك بدون مشاكل 

ششكرا الله يجزاك خير بس عندي مشكلة لما اسوي postfix reload يطلع لي هذا الخطا ماعرفت احله 

postfix reload.png

 

ولسويت mailq يطلع هالخطا وقبل ضبطت بس مارسل لي ع الايميل وجربت كودي عن طريق php كذلك ماضبط وهذا الخطا اللي يطلع لي 

mailq.png

Ali Majrashi • منذ 8 سنوات
16 ساعات مضت, aml said:

ششكرا الله يجزاك خير بس عندي مشكلة لما اسوي postfix reload يطلع لي هذا الخطا ماعرفت احله 

postfix reload.png

 

ولسويت mailq يطلع هالخطا وقبل ضبطت بس مارسل لي ع الايميل وجربت كودي عن طريق php كذلك ماضبط وهذا الخطا اللي يطلع لي 

mailq.png

غريبة لانها شغاله عندي بدون اي مشاكل انا عندي اصدار ماك OS X 10.11.3 اخر اصدار EI Capitan ببعض النسخ مثل OS X Yosemite نحط # قدام هالسطر من الاعدادات الي فوق لما اضفناها لملف etc/postfix/main.cf

mydomain_fallback = localhost

بحيث يتجاهل هالسطر بحيث يصير كذا


#mydomain_fallback = localhost

ونضيف هالسطر مع الاعدادات الي فوق

smtp_sasl_security_options = noanonymous

ونكمل بقية الخطوات وباذن الله يشتغل

Ali Majrashi • منذ 8 سنوات

الطريقة الي فوق راح تسمح لك بارسال الرسائل عن طريق مزود خدمة مثل Gmail 

فيه طريقة ثانية عن طريق الجهاز نفسه وهي ابسط ولاكن ماتنفع للرسائل الكثير مجرد رسائل بسيطة اهم شي حذف الاعدادات الي انضافت بالردود الي فوق

عكس الطريقة الي فوق 

نفتح ملف 

sudo vi /etc/postfix/main.cf

ونبحث عن هذه الاعدادات الثالثة ونتاكد انها نفس الشي 

mydomain_fallback = localhost
mail_owner = _postfix
setgid_group = _postdrop

طبعا الغير موجود مثل mydomain_fallback مو مهم مايحتاج نضيفه اذا ماكان موجود بالملف

بعدها عن طريق Terminal نعيد تشغيل postfix بواسطة هالامر

sudo postfix reload

بعد مايعيد التشغيل نجرب ونرسل اميل تجريبي عن طريق Terminal بواسطة هالامر

date | mail -s testing [email protected]

 مع مراعاة تغيير [email protected] الى بريدك الشخصي مو شرط gmail اهم شي بريد يعمل وصحيح

لمعرفة الاميلات بقائمة الانتظار عن طريق Terminal نكتب هالامر

mailq

وبعد مانتاكد ان كل شي شغال بدون مشاكل نروح لاعدادات php.ini ونبحث عن 

sendmail_path =

غالبا راح تحصل قدامها فاصلة منقوطة ; نحذفها وبعد علامة = نحط مسار postfix الصحيح لاستخدامه بالارسال كالتالي

sendmail_path = "env -i /usr/sbin/sendmail -t -i"

نحفظ التعديلات ثم نعيد تشغيل السيرفر المحلي

بعدها باذن الله راح تشتغل دالة mail وراح تقدر ترسل من جهازك بدون مشاكل 

لايوجد لديك حساب في عالم البرمجة؟

تحب تنضم لعالم البرمجة؟ وتنشئ عالمك الخاص، تنشر المقالات، الدورات، تشارك المبرمجين وتساعد الآخرين، اشترك الآن بخطوات يسيرة !