การแก้ไข: "ล้มเหลวที่ส่งจดหมาย" ข้อผิดพลาดเมื่อคุณส่งข้อความอีเมล โดยใช้โปรแกรมประยุกต์ใช้.NET Framework 4.0 ที่ใช้คลาส "System.Net.Mail.SmtpClient" ถ้าสิ่งที่แนบของอีเมลที่มีขนาดใหญ่กว่า 3 เมกะไบต์

การแปลบทความ การแปลบทความ
หมายเลขบทความ (Article ID): 2183292 - ผลิตภัณฑ์ที่เกี่ยวข้องในบทความนี้
ขยายทั้งหมด | ยุบทั้งหมด

เนื้อหาบนหน้านี้

อาการ

พิจารณาสถานการณ์สมมติต่อไปนี้:
  • คุณเรียกใช้โปรแกรมประยุกต์ที่ใช้.NET Framework 4.0 โปรแกรมประยุกต์นี้ใช้ใน System.Net.Mail.SmtpClient การจัดประเภทการส่งข้อความอีเมล
  • คุณเพิ่มสิ่งที่แนบมาซึ่งตรงตามเงื่อนไขต่อไปนี้กับข้อความอีเมล
    • ที่ TransferEncoding ไม่มีระบุคุณสมบัติในสิ่งที่แนบ หรือ TransferEncoding มีระบุคุณสมบัติเป็น Base64 หรือ ไม่รู้จัก.
    • ขนาดของสิ่งที่แนบจะมีขนาดใหญ่กว่า 3 เมกะไบต์
  • คุณส่งข้อความอีเมล
ในสถานการณ์สมมตินี้ การ System.Net.Mail.SmtpException ข้อยกเว้นและ System.IndexOutOfRangeException ข้อยกเว้นภายในจะถูกสร้างขึ้น นอกจากนี้ คุณได้รับข้อความแสดงข้อผิดพลาดต่อไปนี้:
ความล้มเหลวในการส่งจดหมาย
ต่อไปนี้เป็นข้อความแสดงข้อผิดพลาดสำหรับข้อยกเว้นภายใน:
ดัชนีถูกภายนอกขอบเขตของอาร์เรย์

การแก้ไข

ข้อมูลโปรแกรมแก้ไขด่วน

สามารถโหลดโปรแกรมแก้ไขด่วนจาก Microsoft ได้แล้ว อย่างไรก็ตาม โดยมีวัตถุประสงค์เพื่อการแก้ไขปัญหาที่อธิบายในบทความนี้เท่านั้น นำไปใช้กับระบบที่พบปัญหานี้เท่านั้น

เมื่อต้องแก้ไขปัญหานี้ ติดต่อฝ่ายบริการสนับสนุนลูกค้าของ Microsoft เพื่อขอรับโปรแกรมแก้ไขด่วน สำหรับรายการสมบูรณ์ของหมายเลขโทรศัพท์บริการการสนับสนุนลูกค้าของ Microsoft และข้อมูลเกี่ยวกับค่าใช้จ่าย เยี่ยมชมเว็บไซต์ของ Microsoft ต่อไปนี้:
http://support.microsoft.com/contactus/?ws=support
หมายเหตุ ในบางกรณี ค่าธรรมเนียมค่าใช้จ่ายสำหรับการสนับสนุนอาจสามารถยกเลิกถ้า Professional สนับสนุน Microsoft กำหนดว่า การปรับปรุงเฉพาะจะแก้ปัญหาของคุณ ใช้จ่ายในการสนับสนุนปกติจะคำถามเพิ่มเติมและปัญหาที่ไม่สามารถจัดเฉพาะเจาะจงในการปรับปรุง

หมายเหตุ เมื่อต้องดาวน์โหลดโปรแกรมแก้ไขด่วนนี้ คุณสามารถเยี่ยมชมเว็บไซต์ของ Microsoft ต่อไปนี้:
https://connect.microsoft.com/VisualStudio/Downloads/DownloadDetails.aspx?DownloadID=30226

ข้อกำหนดเบื้องต้น

คุณต้องมี.NET Framework 4.0 โดยติดตั้งให้ใช้โปรแกรมแก้ไขด่วนนี้

ความต้องการสำหรับการเริ่มระบบใหม่

คุณไม่ต้องรีสตาร์ทคอมพิวเตอร์หลังจากที่คุณใช้โปรแกรมแก้ไขด่วนนี้ถ้าคุณกำลังใช้แฟ้มที่ไม่ได้รับผลกระทบ

ข้อมูลการแทนที่โปรแกรมแก้ไขด่วน

โปรแกรมแก้ไขด่วนนี้ไม่ได้แทนโปรแกรมแก้ไขด่วนอื่น ๆ

ข้อมูลแฟ้ม

เวอร์ชันภาษาอังกฤษของ hotfix นี้มีแอตทริบิวต์แฟ้ม (หรือแอตทริบิวต์ของแฟ้มรุ่นที่ใหม่กว่า) ซึ่งแสดงอยู่ในตารางต่อไปนี้ วันและเวลาสำหรับแฟ้มเหล่านี้จะแสดงรายการในเวลามาตรฐานสากล (UTC) เมื่อคุณดูข้อมูลแฟ้มข้อมูล จะถูกแปลงเป็นเวลาท้องถิ่น เมื่อต้องการค้นหาความแตกต่างระหว่างเวลา UTC กับเวลาท้องถิ่น การ โซนเวลา ในการ วันและเวลา สินค้าใน'แผงควบคุม'
แฟ้มข้อมูลสำหรับรุ่นที่ใช้ x86 ทั้งหมด ของ Windows XP, Windows Server 2003, Windows Vista, Windows Server 2008, Windows 7 และ ของ Windows Server 2008 R2
ยุบตารางนี้ขยายตารางนี้
ชื่อแฟ้มรุ่นของแฟ้มขนาดของแฟ้มวันที่เวลาแพลตฟอร์ม
SetupUi.dll10.0.30319.335295,24813-ก.ค.-201006:36x 86
Setupengine.dll10.0.30319.335809,30413-ก.ค.-201006:36x 86
Setup.exe10.0.30319.33578,15213-ก.ค.-201006:36x 86
System.dll4.0.30319.3353,482,44013-ก.ค.-201011:48x 86
แฟ้มข้อมูลสำหรับรุ่นที่ใช้ x64 ทั้งหมด ของ Windows XP, Windows Server 2003, Windows Vista, Windows Server 2008, Windows 7 และ ของ Windows Server 2008 R2
ยุบตารางนี้ขยายตารางนี้
ชื่อแฟ้มรุ่นของแฟ้มขนาดของแฟ้มวันที่เวลาแพลตฟอร์ม
SetupUi.dll10.0.30319.335295,24813-ก.ค.-201006:36x 86
Setupengine.dll10.0.30319.335809,30413-ก.ค.-201006:36x 86
Setup.exe10.0.30319.33578,15213-ก.ค.-201006:36x 86
System.dll4.0.30319.3353,482,44013-ก.ค.-201011:48x 86
แฟ้มข้อมูลสำหรับทุกรุ่น IA ที่ใช้ x64 ของ Windows XP, Windows Server 2003, Windows Vista, Windows Server 2008, Windows 7 และ ของ Windows Server 2008 R2
ยุบตารางนี้ขยายตารางนี้
ชื่อแฟ้มรุ่นของแฟ้มขนาดของแฟ้มวันที่เวลาแพลตฟอร์ม
SetupUi.dll10.0.30319.335295,24813-ก.ค.-201006:36x 86
Setupengine.dll10.0.30319.335809,30413-ก.ค.-201006:36x 86
Setup.exe10.0.30319.33578,15213-ก.ค.-201006:36x 86
System.dll4.0.30319.3353,482,44013-ก.ค.-201011:48x 86
System.resources.dll4.0.30319.335217,44013-ก.ค.-201006:36x 86

การหลีกเลี่ยงปัญหา

เมื่อต้องหลีกเลี่ยงปัญหานี้ ใช้หนึ่งในวิธีต่อไปนี้:
  • ระบุการ TransferEncoding คุณสมบัติเป็น QuotedPrintable หรือ SevenBit. ตัวอย่างเช่น เพิ่มบรรทัดของรหัสต่อไปนี้อย่างใดอย่างหนึ่งลงในแอพลิเคชัน:
    • attachment.TransferEncoding = System.Net.Mime.TransferEncoding.QuotedPrintable;
    • attachment.TransferEncoding = System.Net.Mime.TransferEncoding.SevenBit;
    หมายเหตุวิธีการนี้อาจไม่ทำงานในทุกกรณีเนื่องจากการ SevenBitการเข้ารหัสและ QuotedPrintable การเข้ารหัสอาจทำให้สิ่งที่แนบมา และเนื่องจากการ QuotedPrintable การเข้ารหัสอาจคู่ขนาดของสิ่งที่แนบมา
  • ส่งเฉพาะสิ่งที่แนบที่มีขนาดเล็กกว่า 3 เมกะไบต์

สถานะ

Microsoft ยืนยันว่า ปัญหานี้เป็นปัญหาที่เกิดขึ้นกับผลิตภัณฑ์ของ Microsoft ที่ระบุไว้ในส่วน "นำไปใช้งาน"

ข้อมูลอ้างอิง

สำหรับข้อมูลเพิ่มเติมเกี่ยวกับคลาสSmtpClientแวะไปเว็บไซต์ Microsoft Developer Network (MSDN) ต่อไปนี้:
ข้อมูลทั่วไปเกี่ยวกับคลาส "SmtpClient"
สำหรับข้อมูลเพิ่มเติมเกี่ยวกับคุณสมบัติTransferEncodingเยี่ยมชมเว็บไซต์ MSDN ต่อไปนี้:
ข้อมูลทั่วไปเกี่ยวกับคุณสมบัติ "TransferEncoding"
สำหรับข้อมูลเพิ่มเติมเกี่ยวกับคำศัพท์ของการปรับปรุงซอฟต์แวร์ ให้คลิกหมายเลขบทความต่อไปนี้เพื่อดูบทความในฐานความรู้ของ Microsoft
824684 คำอธิบายเกี่ยวกับคำศัพท์เฉพาะทางมาตรฐานที่ใช้เพื่ออธิบายชุดปรับปรุงซอฟต์แวร์ของ Microsoft

ข้อมูลเพิ่มเติม

เมื่อต้องการทบทวนเกิดปัญหานี้ เรียกใช้รหัสดังต่อไปนี้:
using System.Net.Mail;

static void Main(string[] args)
{
    SmtpClient client = new SmtpClient("Your mail server");
    client.Credentials = new System.Net.NetworkCredential("User", "Password", "Domain");

    MailMessage msg = new MailMessage("Send From", "Send To", "Large Attachment Mail", "Large Attachment - Test Body"); 
    Attachment attachment = new Attachment(@"<attachment file>");
     msg.Attachments.Add(attachment);
    client.Send(msg);

    msg.Dispose();
    msg = null;
    client = null;
}

คุณสมบัติ

หมายเลขบทความ (Article ID): 2183292 - รีวิวครั้งสุดท้าย: 31 ธันวาคม 2555 - Revision: 3.0
ใช้กับ
  • Microsoft .NET Framework 4.0
Keywords: 
kbqfe kbhotfixserver kbfix kbexpertiseadvanced kbmt KB2183292 KbMtth
แปลโดยคอมพิวเตอร์
ข้อมูลสำคัญ: บทความนี้แปลโดยซอฟต์แวร์การแปลด้วยคอมพิวเตอร์ของ Microsoft แทนที่จะเป็นนักแปลที่เป็นบุคคล Microsoft มีบทความที่แปลโดยนักแปลและบทความที่แปลด้วยคอมพิวเตอร์ เพื่อให้คุณสามารถเข้าถึงบทความทั้งหมดในฐานความรู้ของเรา ในภาษาของคุณเอง อย่างไรก็ตาม บทความที่แปลด้วยคอมพิวเตอร์นั้นอาจมีข้อบกพร่อง โดยอาจมีข้อผิดพลาดในคำศัพท์ รูปแบบการใช้ภาษาและไวยากรณ์ เช่นเดียวกับกรณีที่ชาวต่างชาติพูดผิดเมื่อพูดภาษาของคุณ Microsoft ไม่มีส่วนรับผิดชอบต่อความคลาดเคลื่อน ความผิดพลาดหรือความเสียหายที่เกิดจากการแปลเนื้อหาผิดพลาด หรือการใช้บทแปลของลูกค้า และ Microsoft มีการปรับปรุงซอฟต์แวร์การแปลด้วยคอมพิวเตอร์อยู่เป็นประจำ
ต่อไปนี้เป็นฉบับภาษาอังกฤษของบทความนี้:2183292

ให้ข้อเสนอแนะ

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com