using System;using System.Collections.Generic;using System.Net;using System.Net.Mail;using SendGrid;namespace Example{internal class Webapi{private readonly String _from;private readonly String _password;private readonly IEnumerable<String> _to;private readonly String _username;public Webapi(String username, String password, String from, IEnumerable<String> recipients){_username = username;_password = password;_from = from;_to = recipients;}/// <summary>/// Send a simple HTML based email/// </summary>public void SimpleHTMLEmail(){//create a new message objectvar message = new SendGridMessage();//set the message recipientsforeach (var recipient in _to){message.AddTo(recipient);}//set the sendermessage.From = new MailAddress(_from);//set the message bodymessage.Html = "<html><p>Hello</p><p>World</p></html>";//set the message subjectmessage.Subject = "Hello World HTML Test";//create an instance of the Web transport mechanismvar transportInstance = new Web(new NetworkCredential(_username, _password));//send the mailtransportInstance.DeliverAsync(message);}/// <summary>/// Send a simple Plain Text email/// </summary>public void SimplePlaintextEmail(){//create a new message objectvar message = new SendGridMessage();//set the message recipientsforeach (var recipient in _to){message.AddTo(recipient);}//set the sendermessage.From = new MailAddress(_from);//set the message bodymessage.Text = "Hello World Plain Text";//set the message subjectmessage.Subject = "Hello World Plain Text Test";//create an instance of the Web transport mechanismvar transportInstance = new Web(new NetworkCredential(_username, _password));//send the mailtransportInstance.DeliverAsync(message);}/// <summary>/// Enable The Gravatar Filter./// Currently the filter generates a 1x1 pixel gravatar image./// http://docs.sendgrid.com/documentation/apps/gravatar//// </summary>public void EnableGravatarEmail(){//create a new message objectvar message = new SendGridMessage();//set the message recipientsforeach (var recipient in _to){message.AddTo(recipient);}//set the sendermessage.From = new MailAddress(_from);//set the message bodymessage.Html = "<p style='color:red';>Hello World Gravatar Email</p>";//set the message subjectmessage.Subject = "Hello World Gravatar Test";//create an instance of the Web transport mechanismvar transportInstance = new Web(new NetworkCredential(_username, _password));//enable gravatarmessage.EnableGravatar();//send the mailtransportInstance.DeliverAsync(message);}/// <summary>/// Enable the Open Tracking to track when emails are opened./// http://docs.sendgrid.com/documentation/apps/open-tracking//// </summary>public void EnableOpenTrackingEmail(){//create a new message objectvar message = new SendGridMessage();//set the message recipientsforeach (var recipient in _to){message.AddTo(recipient);}//set the sendermessage.From = new MailAddress(_from);//set the message bodymessage.Html = "<p style='color:red';>Hello World Plain Text</p>";//set the message subjectmessage.Subject = "Hello World Open Tracking Test";//create an instance of the Web transport mechanismvar transportInstance = new Web(new NetworkCredential(_username, _password));//enable gravatarmessage.EnableOpenTracking();//send the mail transportInstance.DeliverAsync(message);}/// <summary>/// Point the urls to Sendgrid Servers so that the clicks can be logged before/// being directed to the appropriate link/// http://docs.sendgrid.com/documentation/apps/click-tracking//// </summary>public void EnableClickTrackingEmail(){//create a new message objectvar message = new SendGridMessage();//set the message recipientsforeach (var recipient in _to){message.AddTo(recipient);}//set the sendermessage.From = new MailAddress(_from);//set the message bodyvar timestamp = DateTime.Now.ToString("HH:mm:ss tt");message.Html = "<p style='color:red';>Hello World HTML </p> <a href='http://microsoft.com'>Checkout Microsoft!!</a>";message.Html = "<p>Sent At : " timestamp "</p>";message.Text = "hello world http://microsoft.com";//set the message subjectmessage.Subject = "Hello World Click Tracking Test";//create an instance of the Web transport mechanismvar transportInstance = new Web(new NetworkCredential(_username, _password));//enable clicktrackingmessage.EnableClickTracking();//send the mail transportInstance.DeliverAsync(message);}/// <summary>/// The Spam Checker filter, is useful when your web application allows your end users/// to create content that is then emailed through your SendGridMessage account./// http://docs.sendgrid.com/documentation/apps/spam-checker-filter//// </summary>public void EnableSpamCheckEmail(){//create a new message objectvar message = new SendGridMessage();//set the message recipientsforeach (var recipient in _to){message.AddTo(recipient);}//set the sendermessage.From = new MailAddress(_from);//set the message bodyvar timestamp = DateTime.Now.ToString("HH:mm:ss tt");message.Html = "<p style='color:red';>VIAGRA!!!!!! Viagra!!! CHECKOUT THIS VIAGRA!!!! MALE ENHANCEMENT!!! </p>";message.Html = "<p>Sent At : " timestamp "</p>";//set the message subjectmessage.Subject = "WIN A MILLION DOLLARS TODAY! WORK FROM HOME! A NIGERIAN PRINCE WANTS YOU!";//create an instance of the Web transport mechanismvar transportInstance = new Web(new NetworkCredential(_username, _password));//enable spamcheckmessage.EnableSpamCheck();//send the mailtransportInstance.DeliverAsync(message);}/// <summary>/// Add automatic unsubscribe links to the bottom of emails./// http://docs.sendgrid.com/documentation/apps/subscription-tracking//// </summary>public void EnableUnsubscribeEmail(){//create a new message objectvar message = new SendGridMessage();//set the message recipientsforeach (var recipient in _to){message.AddTo(recipient);}//set the sendermessage.From = new MailAddress(_from);//set the message bodymessage.Html = "This is the HTML body";message.Text = "This is the plain text body";//set the message subjectmessage.Subject = "Hello World Unsubscribe Test";//create an instance of the Web transport mechanismvar transportInstance = new Web(new NetworkCredential(_username, _password));//enable spamcheck//or optionally, you can specify 'replace' instead of the text and html in order to //place the link wherever you want.message.EnableUnsubscribe("Please click the following link to unsubscribe: <% %>","Please click <% here %> to unsubscribe");//send the mailtransportInstance.DeliverAsync(message);}/// <summary>/// The Footer App will insert a custom footer at the bottom of the text and HTML bodies./// http://docs.sendgrid.com/documentation/apps/footer//// </summary>public void EnableFooterEmail(){//create a new message objectvar message = new SendGridMessage();//set the message recipientsforeach (var recipient in _to){message.AddTo(recipient);}//set the sendermessage.From = new MailAddress(_from);//set the message bodyvar timestamp = DateTime.Now.ToString("HH:mm:ss tt");message.Html = "<p style='color:red';>Hello World</p>";message.Html = "<p>Sent At : " timestamp "</p>";message.Text = "Hello World plain text";//set the message subjectmessage.Subject = "Hello World Footer Test";//create an instance of the Web transport mechanismvar transportInstance = new Web(new NetworkCredential(_username, _password));//Enable Footermessage.EnableFooter("PLAIN TEXT FOOTER", "<p color='blue'>HTML FOOTER TEXT</p>");//send the mailtransportInstance.DeliverAsync(message);}/// <summary>/// The Footer App will insert a custom footer at the bottom of the text and HTML bodies./// http://docs.sendgrid.com/documentation/apps/google-analytics//// </summary>public void EnableGoogleAnalytics(){//create a new message objectvar message = new SendGridMessage();//set the message recipientsforeach (var recipient in _to){message.AddTo(recipient);}//set the sendermessage.From = new MailAddress(_from);//set the message bodyvar timestamp = DateTime.Now.ToString("HH:mm:ss tt");message.Html = "<p style='color:red';>Hello World</p>";message.Html = "<p>Sent At : " timestamp "</p>";message.Html = "Checkout my page at <a href=\"http://microsoft.com\">Microsoft</a>";message.Text = "Hello World plain text";//set the message subjectmessage.Subject = "Hello World Footer Test";//create an instance of the Web transport mechanismvar transportInstance = new Web(new NetworkCredential(_username, _password));//enable Google Analyticsmessage.EnableGoogleAnalytics("SendGridTest", "EMAIL", "Sendgrid", "ad-one", "My SG Campaign");//send the mailtransportInstance.DeliverAsync(message);}/// <summary>/// This feature wraps an HTML template around your email content./// This can be useful for sending out newsletters and/or other HTML formatted messages./// http://docs.sendgrid.com/documentation/apps/email-templates//// </summary>public void EnableTemplateEmail(){//create a new message objectvar message = new SendGridMessage();//set the message recipientsforeach (var recipient in _to){message.AddTo(recipient);}//set the sendermessage.From = new MailAddress(_from);//set the message bodyvar timestamp = DateTime.Now.ToString("HH:mm:ss tt");message.Html = "<p style='color:red';>Hello World</p>";message.Html = "<p>Sent At : " timestamp "</p>";message.Text = "Hello World plain text";//set the message subjectmessage.Subject = "Hello World Template Test";//create an instance of the Web transport mechanismvar transportInstance = new Web(new NetworkCredential(_username, _password));//enable templatemessage.EnableTemplate("<p>My Email Template <% body %> is awesome!</p>");//send the mailtransportInstance.DeliverAsync(message);}/// <summary>/// This feature wraps an HTML template around your email content./// This can be useful for sending out newsletters and/or other HTML formatted messages./// hhttp://docs.sendgrid.com/documentation/apps/email-templates//// </summary>public void EnableBypassListManagementEmail(){//create a new message objectvar message = new SendGridMessage();//set the message recipientsforeach (var recipient in _to){message.AddTo(recipient);}//set the sendermessage.From = new MailAddress(_from);//set the message bodyvar timestamp = DateTime.Now.ToString("HH:mm:ss tt");message.Html = "<p style='color:red';>Hello World</p>";message.Html = "<p>Sent At : " timestamp "</p>";message.Text = "Hello World plain text";//set the message subjectmessage.Subject = "Hello World Bypass List Management Test";//create an instance of the Web transport mechanismvar transportInstance = new Web(new NetworkCredential(_username, _password));//enable bypass list managementmessage.EnableBypassListManagement();//send the mailtransportInstance.DeliverAsync(message);}/// <summary>/// This feature allows you to create a message template, and specify different replacement/// strings for each specific recipient/// </summary>public void AddSubstitutionValues(){//create a new message objectvar message = new SendGridMessage();//set the message recipientsforeach (var recipient in _to){message.AddTo(recipient);}//set the sendermessage.From = new MailAddress(_from);//set the message bodymessage.Text = "Hi %name%! Pleased to meet you!";//set the message subjectmessage.Subject = "Testing Substitution Values";//This replacement key must exist in the message bodyvar replacementKey = "%name%";//There should be one value for each recipient in the To listvar substitutionValues = new List<String> {"Mr Foo", "Mrs Raz"};message.AddSubstitution(replacementKey, substitutionValues);//create an instance of the SMTP transport mechanismvar transportInstance = new Web(new NetworkCredential(_username, _password));//enable bypass list managementmessage.EnableBypassListManagement();//send the mailtransportInstance.DeliverAsync(message);}/// <summary>/// This feature adds key value identifiers to be sent back as arguments over the event api for/// various events/// </summary>public void AddUniqueIdentifiers(){//create a new message objectvar message = new SendGridMessage();//set the message recipientsforeach (var recipient in _to){message.AddTo(recipient);}//set the sendermessage.From = new MailAddress(_from);//set the message bodymessage.Text = "Hello World";//set the message subjectmessage.Subject = "Testing Unique Identifiers";var identifiers = new Dictionary<String, String>();identifiers["customer"] = "someone";identifiers["location"] = "somewhere";message.AddUniqueArgs(identifiers);//create an instance of the SMTP transport mechanismvar transportInstance = new Web(new NetworkCredential(_username, _password));//enable bypass list managementmessage.EnableBypassListManagement();//send the mailtransportInstance.DeliverAsync(message);}/// <summary>/// This feature tags the message with a specific tracking category, which will have aggregated stats/// viewable from your SendGridMessage account page./// </summary>public void SetCategory(){//create a new message objectvar message = new SendGridMessage();//set the message recipientsforeach (var recipient in _to){message.AddTo(recipient);}//set the sendermessage.From = new MailAddress(_from);//set the message bodymessage.Text = "Hello World";//set the message subjectmessage.Subject = "Testing Categories";var category = "vipCustomers";message.SetCategory(category);//create an instance of the SMTP transport mechanismvar transportInstance = new Web(new NetworkCredential(_username, _password));//enable bypass list managementmessage.EnableBypassListManagement();//send the mailtransportInstance.DeliverAsync(message);}}}
下载C# 发邮件源码(SendGrid)用户还喜欢
- 18480 文章数
- 500万+ 热度
作者专栏
编辑推荐
- 淡抹u2引擎,修复内容较多,物有所值
- 界域传说·经典巨作=传世单机(一键安装)
- 丸子版本(175个传世版本大集合)
- GS版本:神话公益服务端+客户端
- 图片放大工具(放大图片不模糊)
- 剪映无限制VIP版
- 传奇世界客户端下载器,史上最全传世客户端
- 传世GS20220920商业引擎注册+登录配置器 解压密码是1
- U2官方排行榜游戏网关 支持元神,支持传家宝
- GS开战传世客户端+服务端
- (淡漠夕阳)u2引擎合区工具
- 传世GS引擎消除“你的游戏客户端版本号过旧,请及时更新”提示
- 传世一机多区双线路配置器--免密码版本
- 传世凤凰登陆器劫持修复软件
- SQLite3 for Navicat
- 传奇世界npc对话框编辑工具
- 传世GS落霞铭文服务器端
- gs_20210409引擎包+注册机(无限制)
- 传奇世界NPC对话封包查看器[支持时长版和极速版]
- 彩虹引擎传世脚本编辑工具1.7版来了,支持函数脚本翻译
评论