简体   繁体   中英

Not getting any clue to integrate Gmail API using .NET framework in vs2017. I wanted to send the input data of the Web form to a user's email .

The official Gmail API documentation is horrendous. Not getting any clue to integrate Gmail API using .NET framework in vs2017. I wanted to send the input data of the Web form to a user's email.

It would be a three step process -

  1. Define an HTML template which which describes how your mail should be presented.

  2. Write a small c# code to replace all place holders like your form fields , user name, etc.

     private string createEmailBody(string userName, string title, string message) { string body = string.Empty; //using streamreader for reading my htmltemplate using(StreamReader reader = new StreamReader(Server.MapPath("~/HtmlTemplate.html"))) { body = reader.ReadToEnd(); } body = body.Replace("{UserName}", userName); //replacing the required things body = body.Replace("{Title}", title); body = body.Replace("{message}", message); //// Instead of message add you own parameters. return body;

    }

  3. When form is submitted, call step 2 code first. Then use it's output to set mail body.

Code would be something like -

string smtpAddress = "smtp.gmail.com";
int portNumber = 587;
bool enableSSL = true;

/// This mail from can just be a display only mail I'd 
string emailFrom = "no-reply@gmail.com";

string subject = "your subject";
string body = createEmailBody();

using (MailMessage mail = new MailMessage())
{
mail.From = new MailAddress(emailFrom);
mail.To.Add(emailTo);
/// Add more to IDs if you want to send it to multiple people.

mail.Subject = subject;
mail.Body = body;
mail.IsBodyHtml = true;
// This is required to keep formatting of your html contemts

/// Add attachments if you want, this is optional
mail.Attachments.Add(new Attachment(yourfilepath));


   using (SmtpClient smtp = new SmtpClient(smtpAddress, portNumber))
    {
    smtp.Credentials = new NetworkCredential(your-smtp-account-email, your-smtp-account-password);
    smtp.EnableSsl = enableSSL;
    smtp.Send(mail);
    }
}

Refer this link for working example

https://www.c-sharpcorner.com/UploadFile/33b051/sending-mail-with-html-template/

EDIT: For using GMail API Using GMAIL APIs you will need two nuget packages: 1. Install-Package Google.Apis.Gmail.v1 2. Install-Package AE.Net.Mail

Code is very similar to what we have for normal SMTP mail send. It is explained at: http://jason.pettys.name/2014/10/27/sending-email-with-the-gmail-api-in-net-c/

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM