summaryrefslogtreecommitdiffstats
path: root/SendGrid/Example/SMTPAPI.cs
blob: b46520b56d3b150defc8618b0b53a6104ab65b9b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
using System;
using System.Collections.Generic;
using System.Net;
using System.Net.Mail;
using SendGridMail;
using SendGridMail.Transport;

namespace Example
{
    class SMTPAPI
    {
        private String _username;
        private String _password;
        private String _from;
        private IEnumerable<string> _to;

        public SMTPAPI(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 object
            var message = SendGrid.GenerateInstance();

            //set the message recipients
            foreach(string recipient in _to)
            {
                message.AddTo(recipient);
            }

            //set the sender
            message.From = new MailAddress(_from);

            //set the message body
            message.Html = "<html><p>Hello</p><p>World</p></html>";

            //set the message subject
            message.Subject = "Hello World Simple Test";

            //create an instance of the SMTP transport mechanism
            var smtpInstance = SMTP.GenerateInstance(new NetworkCredential(_username, _password));

            //send the mail
            smtpInstance.Deliver(message);
        }

        /// <summary>
        /// Send a simple Plain Text email
        /// </summary>
        public void SimplePlaintextEmail()
        {
            //create a new message object
            var message = SendGrid.GenerateInstance();

            //set the message recipients
            foreach(string recipient in _to)
            {
                message.AddTo(recipient);
            }

            //set the sender
            message.From = new MailAddress(_from);

            //set the message body
            message.Text = "Hello World Plain Text";

            //set the message subject
            message.Subject = "Hello World Simple Test";

            //create an instance of the SMTP transport mechanism
            var smtpInstance = SMTP.GenerateInstance(new NetworkCredential(_username, _password));

            //send the mail
            smtpInstance.Deliver(message);
        }

        /// <summary>
        /// Enable The Gravatar Filter. 
        /// Currently the filter a 1x1 pixel gravatar image.
        /// Find more info at http://docs.sendgrid.com/documentation/apps/gravatar/
        /// </summary>
        public void EnableGravatarEmail()
        {
            //create a new message object
            var message = SendGrid.GenerateInstance();

            //set the message recipients
            foreach (string recipient in _to)
            {
                message.AddTo(recipient);
            }

            //set the sender
            message.From = new MailAddress(_from);

            //set the message body
            message.Html = "<p style='color:red';>Hello World Gravatar Email</p>";

            //set the message subject
            message.Subject = "Hello World Gravatar Test";

            //create an instance of the SMTP transport mechanism
            var smtpInstance = SMTP.GenerateInstance(new NetworkCredential(_username, _password));
            
            //enable gravatar
            message.EnableGravatar();

            //send the mail
            smtpInstance.Deliver(message);
        }

        /// <summary>
        /// Enable the Open Tracking to track when emails are opened.
        /// http://docs.sendgrid.com/documentation/apps/open-tracking/
        /// </summary>
        public void EnableOpenTrackingEmail()
        {
            var header = new Header();
            //create a new message object
            var message = SendGrid.GenerateInstance();

            //set the message recipients
            foreach (string recipient in _to)
            {
                message.AddTo(recipient);
            }

            //set the sender
            message.From = new MailAddress(_from);

            //set the message body
            message.Html = "<p style='color:red';>Hello World Plain Text</p>";

            //set the message subject
            message.Subject = "Hello World Open Tracking Test";

            //create an instance of the SMTP transport mechanism
            var smtpInstance = SMTP.GenerateInstance(new NetworkCredential(_username, _password));

            //enable gravatar
            message.EnableOpenTracking();

            Console.WriteLine(header.AsJson());

            //send the mail
            smtpInstance.Deliver(message);

            Console.WriteLine("done");
        }

        /// <summary>
        /// Enable the Open Tracking to track when emails are opened.
        /// http://docs.sendgrid.com/documentation/apps/open-tracking/
        /// </summary>
        public void EnableClickTrackingEmail()
        {
            var header = new Header();
            //create a new message object
            var message = SendGrid.GenerateInstance();

            //set the message recipients
            foreach (string recipient in _to)
            {
                message.AddTo(recipient);
            }

            //set the sender
            message.From = new MailAddress(_from);

            //set the message body
            var timestamp = DateTime.Now.ToString("HH:mm:ss tt");
            message.Html = "<p style='color:red';>Hello World Plain Text</p> <a href = 'http://microsoft.com'>Checkout Microsoft!!</a>";
            message.Html += "<p>Sent At : " + timestamp + "</p>";

            //set the message subject
            message.Subject = "Hello World Click Tracking Test";

            //create an instance of the SMTP transport mechanism
            var smtpInstance = SMTP.GenerateInstance(new NetworkCredential(_username, _password));

            //enable clicktracking
            message.EnableClickTracking("1");

            Console.WriteLine(header.AsJson());

            //send the mail
            smtpInstance.Deliver(message);

            Console.WriteLine("done");
            Console.WriteLine("Sent at : "+timestamp);
        }

    }
}