ง่าย และรวดเร็ว: ส่งอีเมล์ที่ใช้ Gmail SMTP Server ในNET C#

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

บิตการต่อไปนี้ของรหัสจะส่งอีเมล์ที่ใช้บัญชี gmail ของตัวเองจะทำได้, รวมทั้งสิ่งที่แนบมา:

โดยใช้ System.Net.Mail;
โดยใช้ System.Net;

NetworkCredential loginInfo = ใหม่ NetworkCredential("[ID ของฉัน Gmail]", "[รหัสผ่านของ Gmail]");
MailMessage msg = ใหม่ MailMessage();
msgจาก = ใหม่ MailAddress("[M Gmail Id]@gmail.com");
msgTo.Add(ใหม่ MailAddress("paul.galvin@arcovis.com"));
msgเรื่อง = "ทดสอบเรื่อง dev infopath";
msgร่างกาย = "<html><เนื้อความ><รัดกุม>ความแข็งแรง</รัดกุม></เนื้อความ></html>";
msgIsBodyHtml = จริง;

foreach (สายอักขระ aFile ใน NIPFDGetAttachmentNamesAndLocations())
{
    msgAttachments.Add(ใหม่ สิ่งที่แนบมา(aFile));
} // เพิ่มสิ่งที่แนบ.

SmtpClient ไคลเอ็นต์ = ใหม่ SmtpClient("smtp.gmail.com");
ไคลเอ็นต์EnableSsl = จริง;
ไคลเอ็นต์UseDefaultCredentials = เท็จ;
ไคลเอ็นต์ข้อมูลประจำตัว = loginInfo;
ไคลเอ็นต์พอร์ต = 587;
ไคลเอ็นต์EnableSsl = จริง;
ไคลเอ็นต์ส่ง(ข่าวสารเกี่ยวกับ);

บิตสำคัญบางอย่างที่หน่วง me ลงและสังเกตอื่น ๆ / หมายเหตุ:

  • บรรทัดแรกที่สร้างวัตถุ loginInfo ต้องใช้ gmail ID เปลื้อง "@gmail.com”. ดังนั้น, ถ้าที่อยู่อีเมล์ของ gmail "sharepoint@gmail.com"และรหัสผ่านของฉันคือ"xyzzy"บรรทัดแล้วจะมีลักษณะเหมือน:

NetworkCredential loginInfo = ใหม่ NetworkCredential("sharepoint", "xyzzy");

  • มีตั้งค่าบัญชี gmail การใช้ SSL และที่ไม่มีปัญหา.
  • มีข้อมูลบางอย่างขัดแย้งกันออกมีในพอร์ตใดใช้. ใช้พอร์ต 587 และจะทำงานที่ดีสำหรับฉัน.
  • ในกรณีของฉัน, ฉันยังต้องการส่งสิ่งที่แนบ. วัตถุ NIPFD ที่มีวิธีการที่รู้อยู่ที่สิ่งที่แนบมาของฉัน. มันเป็นความเต็มเส้นทาง (เช่น. "c:\tempattachment1.jpg". ในการทดสอบของฉัน, ฉันมีสองสิ่งที่แนบมา และพวกเขาทั้งสองทำงานดี.

ใช้ visual studio 2008 การเขียนรหัสนี้.

</สิ้นสุด>

สมัครสมาชิกไปยังบล็อกของฉัน.

ทำตามฉันใน Twitter ที่ http://www.twitter.com/pagalvin

แท็กของ Technorati: ,,,

2 คิดเกี่ยวกับ“ง่าย และรวดเร็ว: ส่งอีเมล์ที่ใช้ Gmail SMTP Server ในNET C#

  1. Jeff

    บล็อก PowerShell ทีมล่าสุดได้ประกาศในคล้ายกับที่พบข้อมูลอันมีค่าเป็น admin เซิร์ฟเวอร์. Visual Studio มีมาก แต่มากที่เพื่อนร่วมงานของฉันไม่ได้เป็นนักพัฒนา และไม่มีสิทธิ์การใช้งานซื้อ. PowerShell รู้สึกเพิ่มเติมเช่นบรรทัดคำสั่ง และสามารถเข้าถึงได้. เพียงคำแนะนำสำหรับผู้ดูแลระบบใด ๆ ออกมี.

    ดีที่สุด,
    Jeff (www.spjeff.com / @ spjeff)

    ส่งอีเมล์อัตโนมัติพร้อมส่ง-MailMessage

    http://blogs.msdn.com/powershell/archive/2009/10/30/sending-automated-emails-with-send-mailmessage-convertto-html-and-the-powershellpack-s-taskscheduler-module.aspx

ปล่อยให้ตอบกลับ Jeff ยกเลิกการตอบ

ที่อยู่อีเมลของคุณจะไม่ถูกเผยแพร่. ช่องที่ต้องการถูกทำเครื่องหมาย *