Coldfusion ไม่ส่งอีเมล

ฉันประสบปัญหากับเว็บไซต์นี้ ไม่มีการส่งอีเมลใดๆ โดยทั่วไปเมื่อมีคนสั่งซื้อ ระบบจะส่งอีเมลยืนยัน ฉันไม่เห็นปัญหาใดๆ เกี่ยวกับโค้ด แต่ฉันเชื่อว่านี่คือสถานที่ที่เหมาะสมในการค้นหาปัญหา ใครสามารถช่วยฉันหน่อยได้ไหม?

<cfquery name="getUser" datasource="personal2009">
SELECT * FROM site_users WHERE id = '#session.id#'
</cfquery>

<cfoutput>
    <cfmail to="#site_email#" from="#site_email#" subject="Website International Order Request">
    #getUser.title# #getUser.Firstname# #getUser.Surname# has requested to deliver an order to an international address.

    Their contact details are:
    #getUser.Address1#
    #getUser.Address2#
    #getUser.Town#
    #getUser.Postcode#
    #getUser.Country#

    #getUser.Tel#
    #getUser.email#

    The delivery address requested is:
    #formtitle# #formFirstname# #formSurname#
    #formAddress1#
    #formAddress2#
    #formTown#
    #formPostcode#

    The order details are:
    <cfset thisrow = 0><cfoutput><cfset thisrow = thisrow + 1><cfset tot = 0><cfloop index="list" from="1" to="#session.numincart#"><CFQUERY NAME="ind" DATASOURCE="personal2009" maxrows=1>SELECT * FROM products WHERE id = #listgetat(session.cart, list)#</CFQUERY>
    Product Name: #ind.product_name#
    Price: £#decimalformat(listgetat(session.price, list))#<cfset multiply2 = #listgetat(session.quant, list)#>
    Quantity: #listgetat(session.quant, list)#

    </cfloop></cfoutput>
    Thank you

    </cfmail>
</cfoutput>
<cfset session.endemail = '1'>

person danrodrigues    schedule 29.05.2013    source แหล่งที่มา
comment
คุณแน่ใจหรือว่าเป็นปัญหาเกี่ยวกับรหัสและไม่ใช่ปัญหากับเซิร์ฟเวอร์อีเมล หากคุณไม่ได้ใช้โฮสติ้งที่ใช้ร่วมกัน ให้ยืนยันการตั้งค่าอีเมลของคุณโดยไปที่ CF Admin และคลิกที่ลิงก์ Mail ใต้การตั้งค่าเซิร์ฟเวอร์ อย่าเปลี่ยนการตั้งค่าใดๆ คลิกตรวจสอบการเชื่อมต่อเซิร์ฟเวอร์เมล แล้วกดส่งการเปลี่ยนแปลง หากทุกอย่างเรียบร้อยดี คุณควรได้รับการยืนยันการเชื่อมต่อสีเขียวสำเร็จ   -  person Chester    schedule 29.05.2013
comment
คุณได้ตรวจสอบบันทึกการส่งอีเมลแล้วหรือยัง? อย่างไรก็ตาม cfmail มีคุณสมบัติ cfoutput ในตัว ดังนั้นคุณไม่จำเป็นต้องมีแท็กล้อมรอบมัน   -  person Dan Bracuk    schedule 29.05.2013
comment
สิ่งแรกที่คุณควรทำคือตรวจสอบบันทึกเมล ซึ่งน่าจะแจ้งให้คุณทราบได้อย่างรวดเร็วหากมีปัญหาเกี่ยวกับโค้ด/การกำหนดค่า หรือหากคุณกำลังส่งอีเมลจริงๆ และอีเมลดังกล่าวถูกบล็อกไว้ที่จุดปลายน้ำ   -  person Shawn    schedule 29.05.2013
comment
จาก LiveDocs: livedocs.adobe.com/coldfusion/8 /htmldocs/ การบันทึกข้อผิดพลาดและข้อความที่ไม่ได้จัดส่ง ColdFusion บันทึกข้อผิดพลาดทั้งหมดที่เกิดขึ้นระหว่างการประมวลผลข้อความ SMTP ไปยังไฟล์ mail.log ในไดเร็กทอรีบันทึก ColdFusion รายการบันทึกประกอบด้วยวันที่และเวลาของข้อผิดพลาด ตลอดจนข้อมูลการวินิจฉัยว่าเหตุใดจึงเกิดข้อผิดพลาด   -  person Shawn    schedule 29.05.2013
comment
หากข้อความไม่ได้จัดส่งเนื่องจากมีข้อผิดพลาด ColdFusion จะเขียนลงในไดเร็กทอรีนี้: ใน Windows: \CFusion\Mail\Undelivr บน UNIX: /opt/coldfusion/mail/undelivr รายการบันทึกข้อผิดพลาดที่สอดคล้องกับข้อความที่ไม่ได้จัดส่งประกอบด้วย ชื่อของไฟล์ที่เขียนไปยังไดเร็กทอรี UnDelivr (หรือ undelivr)   -  person Shawn    schedule 29.05.2013


คำตอบ (1)


ฉันอาจแนะนำให้เปลี่ยนแท็ก cfmail ของคุณเป็นดังต่อไปนี้ ทั้งนี้ขึ้นอยู่กับสภาพแวดล้อมการโฮสต์ของคุณ:

<cfmail to="#site_email#" from="#site_email#" subject="Website International Order Request" server="#server#" username="#username#" password="#password#">

1) หากคุณไม่สามารถเข้าถึง CFADMIN คุณจะไม่สามารถติดตามเส้นทางอีเมลของคุณได้ การระบุเซิร์ฟเวอร์/ชื่อผู้ใช้/รหัสผ่านของคุณเองจะช่วยให้คุณสามารถส่งอีเมลด้วยเซิร์ฟเวอร์ SMTP ของคุณเองและแยกแยะได้

2) แม้ว่าโฮสต์ของคุณจะมีการตั้งค่า CFMAIL ด้วยเซิร์ฟเวอร์เริ่มต้นของ SMTP แต่ก็อาจเป็นไปได้ว่าไม่ได้ตั้งค่าการส่งต่อ SMTP อย่างถูกต้อง ผลลัพธ์คือเมลของคุณถูกส่งผ่าน Coldfusion แต่เซิร์ฟเวอร์ SMTP ปฏิเสธ

3) แม้ว่าโฮสต์ของคุณจะมีการตั้งค่า CFMAIL และการตั้งค่าการส่งต่อ SMTP ความเป็นไปได้สุดท้ายอาจเป็นตัวกรองสแปมในส่วนรับ หากคุณมีตัวกรองสแปมที่ดูที่ SPF/คีย์โดเมน/เกณฑ์อื่นๆ ตัวกรองเหล่านั้นก็อาจบล็อกอีเมลได้เช่นกัน

การระบุเซิร์ฟเวอร์/ชื่อผู้ใช้/รหัสผ่านของคุณเองมักเป็นทางเลือกที่ดีที่สุดในการแก้ไขปัญหาอีเมล

person steve    schedule 29.05.2013
comment
ขอบคุณ! สิ่งนี้ช่วยฉันได้แล้ว ฉันได้ดำเนินการตามคำแนะนำของคุณแล้ว แต่ฉันไม่สามารถเข้าถึงอีเมลเพื่อทดสอบได้ ดังนั้นฉันจึงรอให้เพื่อนบอกฉันว่าตอนนี้เธอได้รับอีเมลหรือไม่ - person danrodrigues; 04.06.2013