コード例 #1
0
ファイル: GmailUtil.cs プロジェクト: strategicallynicole/bot
        public static GmailMessage GetFakeGmailMessage(
            string from    = "*****@*****.**",
            string to      = "*****@*****.**",
            string subject = "test subject",
            string content = "test content")
        {
            var mess = new MailMessage
            {
                Subject = subject,
                From    = new MailAddress(from)
            };

            mess.To.Add(new MailAddress(to));

            var adds = AlternateView.CreateAlternateViewFromString(content, new System.Net.Mime.ContentType("text/plain"));

            adds.ContentType.CharSet = Encoding.UTF8.WebName;
            mess.AlternateViews.Add(adds);

            var mime         = MimeMessage.CreateFromMailMessage(mess);
            var gmailMessage = new GmailMessage()
            {
                Raw      = GMailService.Base64UrlEncode(mime.ToString()),
                ThreadId = "1"
            };

            return(gmailMessage);
        }
コード例 #2
0
        public ActionResult EmailAdmin(EmailAdminViewModel model)
        {
            // Test error handling. throw new DivideByZeroException();

            GMailService.SendMail(EnvironmentSecret.Instance.EmailAdmin, model.Subject, "User:"******" <br/>" + model.Body);
            return(RedirectToAction("Index"));
        }
コード例 #3
0
        public GMailServiceTests()
        {
            //Before running the test, fill it in with the appsetting secret value
            _networkCredentialsMock = new Mock <NetworkCredential>("username here", "password here");
            _smtpClientMock         = new Mock <SmtpClient>("smtp.gmail.com", 587);

            _sut = new GMailService(_smtpClientMock.Object, _networkCredentialsMock.Object);
        }
コード例 #4
0
        public ActionResult TestEmail(TestEmailViewModel model)
        {
            var userId = User.Identity.GetUserId();

            GMailService.SendMail(model.EmailTo, model.Subject, model.Body, userId);


            return(View());
        }
コード例 #5
0
            public new Task <GmailMessage> ExecuteAsync()
            {
                if (UserId != "me")
                {
                    throw new Exception("User ID not support");
                }

                var mime = GMailService.DecodeToMessage(Body.Raw);

                return(Task.FromResult(this.Body));
            }
コード例 #6
0
        public Task SendAsync(IdentityMessage message)
        {
            // Plug in your email service here to send an email.


            return(Task.Run(() =>
            {
                // Use google mail provider.
                GMailService.SendMail(message.Destination, message.Subject, message.Body);
            }));
        }
コード例 #7
0
        public JsonNetResult SendMail(ContactViewModel contact)
        {
            const string newline = "<br/>";
            var          result  = new JsonNetResult
            {
                Data = $"E:{contact.EmailAddress} M:{contact.Message}N:{contact.Name}S:{contact.Subject}"
            };

            GMailService.SendMail(
                EnvironmentSecret.Instance.EmailAdmin,
                $"Contact From {contact.EmailAddress} : {contact.Subject} on {EnvironmentService.Stage}",
                $"{EnvironmentService.Environment()}Contact Name:{contact.Name}{newline}Contact Email:{contact.EmailAddress}{newline}Message:{contact.Message}");
            return(result);
        }
コード例 #8
0
        protected override void OnApplicationError(object sender, EventArgs e)
        {
            const string newline = "<br/>";

            base.OnApplicationError(sender, e);
            Exception exc            = Server.GetLastError();
            string    innerException = exc.InnerException?.ToString() ?? "No inner exception";

            GMailService.SendMail(EnvironmentSecret.Instance.EmailAdmin,
                                  $"Global Application Error on {EnvironmentService.Stage} {EnvironmentService.Domain}",
                                  EnvironmentService.Environment() + newline +
                                  "Error Message:" + exc.Message + newline +
                                  "Stack Trace:" + exc.StackTrace + newline +
                                  "Inner Exception:" + innerException + newline);
        }
コード例 #9
0
        /// <inheritdoc/>
        public IMailService InitMailService(string token, TimeZoneInfo timeZoneInfo, MailSource source)
        {
            switch (source)
            {
            case MailSource.Microsoft:
                var serviceClient = GraphClient.GetAuthenticatedClient(token, timeZoneInfo);
                return(new MSGraphMailAPI(serviceClient, timeZoneInfo));

            case MailSource.Google:
                var googleClient        = GoogleClient.GetGoogleClient(_settings);
                var googleServiceClient = GMailService.GetServiceClient(googleClient, token);
                return(new GMailService(googleServiceClient));

            default:
                throw new Exception("Event Type not Defined");
            }
        }
コード例 #10
0
        public ActionResult ManageProfile(ApplicationUser model, string action)
        {
            if (ModelState.IsValid)
            {
                ApplicationUser u = UserManager.FindById(model.Id);

                if (action == "Delete")
                {
                    UserManager.Delete(u);
                    AuthenticationManager.SignOut(DefaultAuthenticationTypes.ApplicationCookie);
                }
                else
                {
                    if (model.WhatsAppMember && (u.WhatsAppMember != model.WhatsAppMember) && (model.PhoneNumber.Length > 0))
                    {
                        // New request to join whats app group.
                        GMailService.SendMailNewWhatsAppMember(u.UserName, model.PhoneNumber);
                    }

                    u.WhatsAppMember   = model.WhatsAppMember;
                    u.PhoneNumber      = model.PhoneNumber;
                    u.NewsSubscription = model.NewsSubscription;
                    u.Name             = model.Name;
                    if (model.AddressId != -1)
                    {
                        u.AddressId = model.AddressId;
                    }



                    UserManager.Update(u);
                }

                return(RedirectToAction("Index", "Home"));
            }
            return(View(model));
        }