Mabilis at madali: Magpadala ng Email Paggamit ng Gmail SMTP Server sa. NET C #

Ito ay hindi eksakto ng isang bagong paksa, ngunit kapag ako ay kinakailangan na gawin ito, I found a lot of “why won’t this work for me” and not too many direct answers. I hope someone finds this useful.

Ang mga sumusunod na piraso ng code ay magpadala ng email gamit ang aking sariling gmail account upang gawin ito, kabilang ang mga attachment:

paggamit System.Net.Mail;
paggamit System.Net;

NetworkCredential loginInfo = bago NetworkCredential("[Aking Gmail ID]", "[Aking Gmail Password]");
MailMessage msg = bago MailMessage();
msg.From = bago MailAddress("[M Gmail Id]@ Gmail.com");
msg.To.Add(bago MailAddress("paul.galvin@arcovis.com"));
msg.Subject = "Test infopath dev subject";
msg.Body = "<html><katawan><malakas>Ang isang malakas na mensahe.</malakas></katawan></html>";
msg.IsBodyHtml = totoo;

foreach (pisi aFile sa NIPFD.GetAttachmentNamesAndLocations())
{
    msg.Attachments.Add(bago Pagkakabit(aFile));
} // Pagdaragdag ng mga attachment.

SmtpClient client = bago SmtpClient("smtp.gmail.com");
client.EnableSsl = totoo;
client.UseDefaultCredentials = hindi totoo;
client.Credentials = loginInfo;
client.Port = 587;
client.EnableSsl = totoo;
client.Send(msg);

Ang ilang mga susi piraso na pinabagal akin down at iba pang mga obserbasyon / mga tala:

  • Ang unang linya na lumilikha ang loginInfo bagay na kailangang gamitin ang gmail ID Nakuha ang "@ Gmail.com". Kaya, kung ang aking gmail email address ay "Sharepoint@gmail.com"At ang aking password ay" xyzzy "pagkatapos linya ang magiging itsura:

NetworkCredential loginInfo = bago NetworkCredential("sharepoint", "xyzzy");

  • Ang aking gmail account ay naka-set up upang gamitin ang SSL at na ay hindi isang problema.
  • There is some conflicting information out there on what port to use. I used port 587 at ito ay nagtrabaho fine para sa akin.
  • Sa aking kaso, I also needed to send attachments. That NIPFD object has a method that knows where my attachments are. It’s returning a fully path (e.g. "C:\temp\attachment1.jpg”. In my test, Mayroon akong dalawang mga attachment at sila ang parehong nagtrabaho fine.

Ginamit ko ang visual studio 2008 upang isulat ang code na ito.

</dulo>

Mag-subscribe sa aking blog.

Sundin ako sa Twitter sa http://www.twitter.com/pagalvin

Technorati Tags: ,,,

2 ano sa tingin mo "Mabilis at madali: Magpadala ng Email Paggamit ng Gmail SMTP Server sa. NET C #

  1. Jeff

    Ang PowerShell blog Koponan kamakailan ay nagkaroon ng isang katulad na post na nakita ko Napakahalaga nito bilang isang admin ng server. Visual Studio ay mahusay na ngunit marami sa aking mga kasamahan ay hindi nag-develop at walang lisensya isang biniling. PowerShell palagay ng higit na katulad ng sa command line at ay mas naa-access sa mga ito. Lamang ng isang mungkahi para sa anumang mga admin out doon.

    Pinakamagaling,
    Jeff (www.spjeff.com / @ Spjeff)

    Nagpapadala ng Automated na mga email gamit ang Send-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

    Sumagot

Mag-iwan ng Sumagot sa Jeff Ikansela reply

Ang iyong email address ay hindi nai-publish. Mga kinakailangang patlang ay minarkahan *