public static CondPair New(Cc condition, Cc notCondition) { var ret = new CondPair(); ret.Condition = condition; ret.NotCondition = notCondition; return ret; }
public static OpCode Setcc(Cc c, Reg8 op1) { return new OpCode(new byte[] { 0x0f, (byte)(0x90 + c), (byte)(0xc0 + op1) }); }
public static OpCode Jcc(Cc c, Val32 op1) { return new OpCode(new byte[] { 0x0f, (byte)(0x80 + c) }, op1, true); }
public static OpCode Setcc(Cc c, Reg8 op1) { return OpCode.NewBytes(Util.GetBytes3(0x0f, (byte)(0x90 + c), (byte)(0xc0 + op1))); }
public static OpCode Jcc(Cc c, Val32 op1) { return OpCode.NewDRel(Util.GetBytes2(0x0f, (byte)(0x80 + c)), op1, true); }
public override Task <KeyspaceMetadata> GetKeyspace(string name) { return(Cc .QueryAsync(string.Format(SelectSingleKeyspace, name), true) .ContinueSync(rs => ParseKeyspaceRow(rs.FirstOrDefault()))); }
public override Task <IEnumerable <KeyspaceMetadata> > GetKeyspaces(bool retry) { return(Cc .QueryAsync(SelectKeyspaces, retry) .ContinueSync(rs => rs.Select(ParseKeyspaceRow))); }
private void CreateZenDeskApiRequest() { var who = Util.UserFullName + " <" + Util.UserEmail + ">"; var id = 0; var subject = $"{Subj}"; var reqbody = new StringBuilder(); reqbody.AppendFormat(@"<b>Request ID: {0}</b><br> <b>Request By:</b> {1} ({2})<br> <b>Host:</b> https://{3}.tpsdb.com<br> ", id, Util.UserFullName, Util.UserEmail, Util.Host); if (Subj != _mydataRequest) { var p = (from e in CurrentDatabase.Users where e.UserId == CurrentDatabase.UserId select new { roles = string.Join(", ", e.Roles) }).SingleOrDefault(); var roles = (p != null ? p.roles : ""); var ccto = !string.IsNullOrEmpty(Cc) ? $@"<b>CC:</b> {Cc}<br>" : ""; reqbody.AppendFormat($@"<b>Roles:</b> {roles}<br>\n{ccto}"); } reqbody.Append(Body); var client = new RestClient("https://touchpointsoftware.zendesk.com/api/v2/tickets.json"); var request = new RestRequest(Method.POST); var priority = Urgency == "1" ? "urgent" : Urgency == "2" ? "normal" : "low"; var collaborators = ""; if (!string.IsNullOrEmpty(Cc)) { var ccs = Cc.Split(','); foreach (var addcc in ccs) { try { if (Util.ValidEmail(addcc)) { _ccAddrs.Add($"\"{addcc.Trim()}\""); } } catch (FormatException) { } } if (_ccAddrs.Count > 0) { collaborators = $"\n\t\t\"collaborators\": [ {string.Join(",", _ccAddrs)} ],"; } } var escapedbody = HttpUtility.JavaScriptStringEncode(reqbody.ToString()); var data = $@"{{ ""ticket"": {{ ""requester"": {{ ""name"": ""{Util.UserFullName}"", ""email"": ""{Util.UserEmail}"" }}, ""requester_id"": {CurrentDatabase.UserPeopleId}, ""subject"": ""{subject}"", ""comment"": {{ ""body"": ""{escapedbody}"" }}, ""external_id"": {id}, ""priority"": ""{priority}"", ""created_at"": ""{DateTime.Now:o}"",{collaborators} ""status"": ""open"" }} }}"; request.AddParameter("application/json", data, ParameterType.RequestBody); var apitoken = ConfigurationManager.AppSettings["ZenDeskApiToken"]; var user = ConfigurationManager.AppSettings["ZenDeskApiUser"]; var authorization = $"{user}/token:{apitoken}"; var encoded = Convert.ToBase64String(Encoding.UTF8.GetBytes(authorization)); request.AddHeader("authorization", $"Basic {encoded}"); request.AddHeader("cache-control", "no-cache"); request.AddHeader("content-type", "application/json"); client.Execute(request); }
public Message CreateMimeMessage(int tennantid, string userid, bool loadAttachments) { List <MailAttachment> internalAttachments = new List <MailAttachment>(); PreprocessHtml(tennantid, internalAttachments); var mailMessage = new Message() { Date = DateTime.Now, Priority = this.Important ? ActiveUp.Net.Mail.MessagePriority.High : ActiveUp.Net.Mail.MessagePriority.Normal }; mailMessage.From = new Address(From, string.IsNullOrEmpty(DisplayName) ? "" : Codec.RFC2047Encode(DisplayName)); mailMessage.To.AddRange(To.ConvertAll(address => { var addr = Parser.ParseAddress(address); addr.Name = string.IsNullOrEmpty(addr.Name) ? "" : Codec.RFC2047Encode(addr.Name); return(new Address(addr.Email, addr.Name)); })); mailMessage.Cc.AddRange(Cc.ConvertAll(address => { var addr = Parser.ParseAddress(address); addr.Name = string.IsNullOrEmpty(addr.Name) ? "" : Codec.RFC2047Encode(addr.Name); return(new Address(addr.Email, addr.Name)); })); mailMessage.Bcc.AddRange(Bcc.ConvertAll(address => { var addr = Parser.ParseAddress(address); addr.Name = string.IsNullOrEmpty(addr.Name) ? "" : Codec.RFC2047Encode(addr.Name); return(new Address(addr.Email, addr.Name)); })); mailMessage.Subject = Codec.RFC2047Encode(Subject); // Set correct body if (Attachments.Count != 0 || internalAttachments.Count != 0) { foreach (MailAttachment attachment in Attachments) { var attachPath = attachment; var attach = CreateAttachment(tennantid, attachment, loadAttachments); if (attach != null) { mailMessage.Attachments.Add(attach); } } foreach (MailAttachment internalAttachment in internalAttachments) { var attach = CreateAttachment(tennantid, internalAttachment, true); if (attach != null) { mailMessage.EmbeddedObjects.Add(attach); } } } mailMessage.BodyText.Charset = Encoding.UTF8.HeaderName; mailMessage.BodyText.ContentTransferEncoding = ContentTransferEncoding.QuotedPrintable; mailMessage.BodyText.Text = ""; mailMessage.BodyHtml.Charset = Encoding.UTF8.HeaderName; mailMessage.BodyHtml.ContentTransferEncoding = ContentTransferEncoding.QuotedPrintable; mailMessage.BodyHtml.Text = HtmlBody; return(mailMessage); }
public virtual void Save(TextWriter txt) { txt.WriteLine("Date: {0}", Date.GetRFC2060Date()); txt.WriteLine("To: {0}", string.Join("; ", To.Select(x => x.ToString()))); txt.WriteLine("Cc: {0}", string.Join("; ", Cc.Select(x => x.ToString()))); txt.WriteLine("Reply-To: {0}", string.Join("; ", ReplyTo.Select(x => x.ToString()))); txt.WriteLine("Bcc: {0}", string.Join("; ", Bcc.Select(x => x.ToString()))); if (Sender != null) { txt.WriteLine("Sender: {0}", Sender); } if (From != null) { txt.WriteLine("From: {0}", From); } if (!string.IsNullOrEmpty(MessageID)) { txt.WriteLine("Message-ID: {0}", MessageID); } var otherHeaders = Headers.Where(x => !SpecialHeaders.Contains(x.Key, StringComparer.InvariantCultureIgnoreCase)); foreach (var header in otherHeaders) { txt.WriteLine("{0}: {1}", header.Key, header.Value); } if (Importance != MailPriority.Normal) { txt.WriteLine("Importance: {0}", (int)Importance); } txt.WriteLine("Subject: {0}", Subject); string boundary = null; if (Attachments.Any() || AlternateViews.Any()) { boundary = string.Format("--boundary_{0}", Guid.NewGuid()); txt.WriteLine("Content-Type: multipart/mixed; boundary={0}", boundary); } // signal end of headers txt.WriteLine(); if (!string.IsNullOrWhiteSpace(Body)) { if (boundary != null) { txt.WriteLine("--" + boundary); txt.WriteLine(); } txt.Write(Body); } AlternateViews.ToList().ForEach(view => { txt.WriteLine(); txt.WriteLine("--" + boundary); txt.WriteLine(string.Join("\r\n", view.Headers.Select(h => string.Format("{0}: {1}", h.Key, h.Value)))); txt.WriteLine(); if (view.Scope >= Scope.HeadersAndBodySnyppit) { txt.WriteLine(view.Body); } }); this.Attachments.ToList().ForEach(att => { txt.WriteLine(); txt.WriteLine("--" + boundary); txt.WriteLine(string.Join("\r\n", att.Headers.Select(h => string.Format("{0}: {1}", h.Key, h.Value)))); txt.WriteLine(); if (att.Scope >= Scope.HeadersAndBodySnyppit) { txt.WriteLine(att.Body); } }); if (boundary != null) { txt.WriteLine("--" + boundary + "--"); } }
public override string ToString() { StringBuilder sb = new StringBuilder(); string boundary = Guid.NewGuid().ToString(); var date = DateTime.Now.ToString("ddd, d MMM yyyy H:m:s zz00"); var subject = !Equals(SubjectEncoding, Encoding.ASCII) ? EncodeQuotedPrintableHeader(Subject, SubjectEncoding) : Subject; AddHeader(sb, "From", FormatMailAddress(From, HeaderEncoding)); if (To.Any()) { AddHeader(sb, "To", String.Join(", ", To.Select(t => FormatMailAddress(t, HeaderEncoding)))); } if (Cc.Any()) { AddHeader(sb, "Cc", String.Join(", ", Cc.Select(t => FormatMailAddress(t, HeaderEncoding)))); } AddHeader(sb, "Subject", subject); AddHeader(sb, "MIME-Version", "1.0"); AddHeader(sb, "Date", date); AddHeader(sb, "Message-ID", MessageId); foreach (var additionalHeader in AdditionalHeaders) { AddHeader(additionalHeader.Name, additionalHeader.Value); } if (Attachments.Any()) { AddHeader(sb, "Content-Type", "multipart/mixed; boundary=" + boundary); AddLine(sb, ""); AddLine(sb, "--" + boundary); } string boundary2 = Guid.NewGuid().ToString(); AddHeader(sb, "Content-Type", "multipart/alternative; boundary=" + boundary2); AddLine(sb, ""); AddLine(sb, "--" + boundary2); AddHeader(sb, "Content-Type", "text/plain; charset=" + BodyEncoding.HeaderName); AddHeader(sb, "Content-Transfer-Encoding", "quoted-printable"); AddHeader(sb, "Content-Disposition", "inline"); AddLine(sb, ""); AddLine(sb, encodeQuotedPrintable(Text, BodyEncoding)); AddLine(sb, "--" + boundary2); AddHeader(sb, "Content-Type", "text/html; charset=" + BodyEncoding.HeaderName); AddHeader(sb, "Content-Transfer-Encoding", "quoted-printable"); AddHeader(sb, "Content-Disposition", "inline"); AddLine(sb, ""); AddLine(sb, encodeQuotedPrintable(Html, BodyEncoding)); AddLine(sb, "--" + boundary2 + "--"); if (Attachments.Any()) { AddLine(sb, ""); foreach (var attachment in Attachments) { AddLine(sb, "--" + boundary); if (attachment.Encoding != null) { AddHeader(sb, "Content-Type", attachment.Type + "; charset=" + attachment.Encoding.HeaderName); } else { AddHeader(sb, "Content-Type", attachment.Type); } AddHeader(sb, "Content-Transfer-Encoding", "base64"); AddHeader(sb, "Content-Disposition", "attachment; filename=" + attachment.Name); AddLine(sb, ""); AddLine(sb, Convert.ToBase64String(attachment.Data, Base64FormattingOptions.InsertLineBreaks)); } AddLine(sb, "--" + boundary + "--"); } return(sb.ToString()); }
/// <summary> /// Creates a Mail object and sends the email if the SMTPServer variable is not /// empty or null /// </summary> /// <param name="timesToRetry">Number of retries</param> /// <param name="retryTimeout">Miliseconds between each retry.</param> public void SendEmail(int timesToRetry = 0, int retryTimeout = 5000) { // Create Mail object var oMailMessage = new MailMessage(); try { // Set properties needed for the email oMailMessage.From = new MailAddress(From); //oMailMessage.To.Add(new MailAddress(To)); var splitChar = To.Contains(",") ? "," : ";"; var emTo = To.Trim().Split(splitChar.ToCharArray(), StringSplitOptions.RemoveEmptyEntries); if (emTo.Length == 0) { throw new ArgumentException("Argument 'To' must be a valid email repository, please review It."); } foreach (string toAdd in emTo) { oMailMessage.To.Add(toAdd); } if (!string.IsNullOrEmpty(Cc)) { //oMailMessage.CC.Add(new MailAddress(Cc)); splitChar = Cc.Contains(",") ? "," : ";"; var emCc = Cc.Trim().Split(splitChar.ToCharArray(), StringSplitOptions.RemoveEmptyEntries); if (emCc.Length == 0) { throw new ArgumentException("Argument 'Cc' must be a valid email repository, please review It."); } foreach (string CcAdd in emCc) { //oMailMessage.To.Add(CcAdd); oMailMessage.CC.Add(CcAdd); } } oMailMessage.Subject = ((string.IsNullOrEmpty(Subject) ? "" : Subject)); oMailMessage.Body = ((string.IsNullOrEmpty(Body) ? "" : Body)); oMailMessage.IsBodyHtml = IsBodyHtml; if (Attachments != null && Attachments.Count > 0) { foreach (string attachment in Attachments) { var mailAttachment = new Attachment(attachment.Trim()); oMailMessage.Attachments.Add(mailAttachment); } } //Utility.RetryAction(() => _smtpClient.Send(oMailMessage), timesToRetry, retryTimeout); Utility.RetryMethod(new Action <MailMessage>(_smtpClient.Send), timesToRetry, retryTimeout, oMailMessage); } finally { //destroy the oMailMessage object to release attachements from usage by the process oMailMessage.Dispose(); } }
/// <summary> /// SMTP邮件Sender的类的封装 /// </summary> public override async Task <bool> Send() { var isSended = false; try { //qq域名邮箱的smtp(smtp.qq.com),端口号:25;如果是腾讯企业邮箱,需要改成smtp.exmail.qq.com,端口号465 var smtpServer = "smtp.exmail.qq.com"; var userName = "******"; //用户名 var password = "******"; //密码 //注意:如果是腾讯企业邮箱发送邮件,默认端口是465,不需要设置,如果你设置了,就发不出来邮件,不知道原因 var message = new MailMessage(); To.ForEach(email => { if (email.IsEmail()) { message.To.Add(email); } }); message.Sender = new MailAddress(userName, userName); if (Cc.AnyOne()) { Cc.ForEach(email => { if (email.IsEmail()) { message.CC.Add(email); } }); } message.Subject = Encoding.Default.GetString(Encoding.Default.GetBytes(Subject)); if (From.IsBlank()) { From = userName; } message.From = DisplayName.IsBlank() ? new MailAddress(From) : new MailAddress(From, Encoding.Default.GetString(Encoding.Default.GetBytes(DisplayName))); message.Body = Encoding.Default.GetString(Encoding.Default.GetBytes(Body)); message.BodyEncoding = Encoding.GetEncoding("GBK"); message.HeadersEncoding = Encoding.UTF8; message.SubjectEncoding = Encoding.UTF8; message.IsBodyHtml = true; message.DeliveryNotificationOptions = DeliveryNotificationOptions.OnFailure; message.ReplyToList.Add(new MailAddress(From)); if (Attachments.AnyOne()) { Attachments.ForEach(x => { message.Attachments.Add(new Attachment(x)); }); } var smtp = new SmtpClient(smtpServer) { DeliveryMethod = SmtpDeliveryMethod.Network, UseDefaultCredentials = false, Credentials = new NetworkCredential(userName, password), Timeout = 30000, EnableSsl = true }; smtp.SendCompleted += smtp_SendCompleted; await smtp.SendMailAsync(message); isSended = true; } catch (Exception ex) { Log.Error("发送邮件失败", ex); } return(isSended); }
public Message ToMimeMessage(int tenant, string user, bool loadAttachments) { var mimeMessage = new Message { Date = DateTime.UtcNow, From = new Address(From, string.IsNullOrEmpty(DisplayName) ? "" : Codec.RFC2047Encode(DisplayName)) }; if (Important) { mimeMessage.Priority = MessagePriority.High; } mimeMessage.To.AddRange(To.ConvertAll(address => { var addr = Parser.ParseAddress(address); addr.Name = string.IsNullOrEmpty(addr.Name) ? "" : Codec.RFC2047Encode(addr.Name); return(new Address(addr.Email, addr.Name)); })); mimeMessage.Cc.AddRange(Cc.ConvertAll(address => { var addr = Parser.ParseAddress(address); addr.Name = string.IsNullOrEmpty(addr.Name) ? "" : Codec.RFC2047Encode(addr.Name); return(new Address(addr.Email, addr.Name)); })); mimeMessage.Bcc.AddRange(Bcc.ConvertAll(address => { var addr = Parser.ParseAddress(address); addr.Name = string.IsNullOrEmpty(addr.Name) ? "" : Codec.RFC2047Encode(addr.Name); return(new Address(addr.Email, addr.Name)); })); mimeMessage.Subject = Codec.RFC2047Encode(Subject); // Set correct body if (Attachments.Any() || AttachmentsEmbedded.Any()) { foreach (var attachment in Attachments) { attachment.user = user; attachment.tenant = tenant; var attach = CreateAttachment(attachment, loadAttachments); if (attach != null) { mimeMessage.Attachments.Add(attach); } } foreach (var embeddedAttachment in AttachmentsEmbedded) { embeddedAttachment.user = user; embeddedAttachment.tenant = tenant; var attach = CreateAttachment(embeddedAttachment, true); if (attach != null) { mimeMessage.EmbeddedObjects.Add(attach); } } } mimeMessage.MessageId = MimeMessageId; mimeMessage.InReplyTo = MimeReplyToId; mimeMessage.BodyText.Charset = Encoding.UTF8.HeaderName; mimeMessage.BodyText.ContentTransferEncoding = ContentTransferEncoding.QuotedPrintable; mimeMessage.BodyText.Text = ""; mimeMessage.BodyHtml.Charset = Encoding.UTF8.HeaderName; mimeMessage.BodyHtml.ContentTransferEncoding = ContentTransferEncoding.QuotedPrintable; mimeMessage.BodyHtml.Text = HtmlBody; mimeMessage.OriginalData = Encoding.GetEncoding("iso-8859-1").GetBytes(mimeMessage.ToMimeString()); return(mimeMessage); }
/// <summary> /// Shared Mail logic for replying to a mail /// </summary> /// <param name="context"></param> protected override void Execute(CodeActivityContext context) { // ****************** getting the input values ************************ ExchangeService objExchangeService = ObjExchangeService.Get(context); Item mail = Mail.Get(context); string body = Body.Get(context); bool isBodyHTML = IsBodyHTML.Get(context); //string recipientEmail = RecipientEmail.Get(context); string cc = Cc.Get(context); string bcc = Bcc.Get(context); string sender = Sender.Get(context); string[] attachments = Attachments.Get(context); bool isReplyAll = ReplyAll.Get(context); //******** Sending mail Logic ****** EmailMessage email = EmailMessage.Bind(objExchangeService, mail.Id, new PropertySet(ItemSchema.Attachments)); ResponseMessage responseMessage = email.CreateReply(isReplyAll); //Check for if body is a HTML content if (isBodyHTML) { responseMessage.BodyPrefix = new MessageBody(BodyType.HTML, body); } else { responseMessage.BodyPrefix = body; } //If CC is available if (cc != null && cc.Length > 0) { //Adding recipients to mail string[] recipientsCC = cc.Split(';'); foreach (string recipient in recipientsCC) { responseMessage.CcRecipients.Add(recipient); } } //If BCC is available if (bcc != null && bcc.Length > 0) { //Adding recipients to mail string[] recipientsBcc = bcc.Split(';'); foreach (string recipient in recipientsBcc) { responseMessage.BccRecipients.Add(recipient); } } //Check if attachment is available //If attachments if (attachments != null && attachments.Length > 0) { FolderView view = new FolderView(10000); view.PropertySet = new PropertySet(BasePropertySet.IdOnly); view.PropertySet.Add(FolderSchema.DisplayName); view.Traversal = FolderTraversal.Deep; Mailbox mailbox = new Mailbox(sender); FindFoldersResults findFolderResults = objExchangeService.FindFolders(new FolderId(WellKnownFolderName.MsgFolderRoot, mailbox), view); foreach (Folder folder in findFolderResults) { if (folder.DisplayName == "Sent Items") { //Adding attachments to reply mail EmailMessage reply = responseMessage.Save(folder.Id); foreach (string attachment in attachments) { reply.Attachments.AddFileAttachment(attachment); } reply.Update(ConflictResolutionMode.AlwaysOverwrite); //Sending mail and saving to sent Items reply.SendAndSaveCopy(folder.Id); } } } else { FolderView view = new FolderView(10000); view.PropertySet = new PropertySet(BasePropertySet.IdOnly); view.PropertySet.Add(FolderSchema.DisplayName); view.Traversal = FolderTraversal.Deep; Mailbox mailbox = new Mailbox(sender); FindFoldersResults findFolderResults = objExchangeService.FindFolders(new FolderId(WellKnownFolderName.MsgFolderRoot, mailbox), view); foreach (Folder folder in findFolderResults) { if (folder.DisplayName == "Sent Items") { responseMessage.SendAndSaveCopy(folder.Id); } } } }
private void Page_Load(object sender, System.EventArgs e) { if (IsPostBack) { _allAddressesOk = true; // Initialize To addresses foreach (string em in txtTo.Text.Split(";".ToCharArray())) { try { if (em.Trim() != string.Empty) { To.Add(em); } } catch (ArgumentException ae) { string message = ae.Message; _allAddressesOk = false; } } // Initialize Cc addresses foreach (string em in txtCc.Text.Split(";".ToCharArray())) { try { if (em.Trim() != string.Empty) { Cc.Add(em); } } catch (ArgumentException ae) { string message = ae.Message; _allAddressesOk = false; } } // Initialize To addresses foreach (string em in txtBcc.Text.Split(";".ToCharArray())) { try { if (em.Trim() != string.Empty) { Bcc.Add(em); } } catch (ArgumentException ae) { string message = ae.Message; _allAddressesOk = false; } } // Show error lblEmailAddressesNotOk.Visible = !AllEmailAddressesOk; } else { txtTo.Text = string.Join(";", (string[])To.ToArray(typeof(string))); txtCc.Text = string.Join(";", (string[])Cc.ToArray(typeof(string))); txtBcc.Text = string.Join(";", (string[])Bcc.ToArray(typeof(string))); } }