ฉันกำลังพยายามส่งอีเมลโดยทางโปรแกรมใน C# แต่ฉันไม่พบสิ่งที่ฉันขาดหายไป นี่คือรหัสสำหรับสิ่งเดียวกัน
string SendEmail(string toAddress, string subject, string body, string senderID)
{
string result = "Message Sent Successfully..!!";
const string senderPassword = "mypassword";
try
{
SmtpClient smtp = new SmtpClient
{
Host = "smtp.gmail.com",
Port = 587,
EnableSsl = true,
DeliveryMethod = SmtpDeliveryMethod.Network,
Credentials = new System.Net.NetworkCredential(senderID, senderPassword),
Timeout = 30000,
};
MailMessage message = new MailMessage(senderID, toAddress, subject, body);
smtp.Send(message);
}
catch (SmtpException e)
{
result = "Smtp status code " + e.StatusCode;
}
catch (Exception ex)
{
result ="Error sending email " +ex.ToString();
}
return result;
}
ฉันได้ลองดูค่าภายในตัวแปรผลลัพธ์แล้ว มันมีสองค่า
- รหัสสถานะ Smtp ล้มเหลวทั่วไป
- การดำเนินการหมดเวลา // หากเราแสดงความคิดเห็นเกี่ยวกับโค้ด catch (SmtpException e)
หากฉันดูในเว็บไซต์ msdn เพื่อหารหัสสถานะ SMTP "ความล้มเหลวทั่วไป" การตีความรหัสสถานะ smtp เราจะพบว่ารหัสสถานะหมายความว่าไม่พบโฮสต์ และฉันลองทำ nslookup และโฮสต์ "smtp.gmail.com" พร้อมใช้งานและเข้าถึงได้ จากเทลเน็ต
สิ่งที่ฉันขาดหายไปในโปรแกรม?