public async Task <FileBytes> DownloadFileAsync(string url, object query = null) { HttpResponseMessage mes = await Get(url, query); if (mes.IsSuccessStatusCode) { FileBytes b = new FileBytes(); b.Bytes = await mes.Content.ReadAsByteArrayAsync(); b.FileName = url.GetAfter("/"); if (mes.Content.Headers.ContentDisposition != null) { b.FileName = mes.Content.Headers.ContentDisposition.FileName; } if (mes.Content.Headers.ContentType != null) { b.MimeType = mes.Content.Headers.ContentType.MediaType; } else { b.MimeType = MimeData.GetFileMimeType(b.FileName); } return(b); } else { return(null); } }
public async Task <FileBytes> DownloadFileAsync(string url, object query = null) { HttpResponseMessage mes = await GetAsync(url, query); if (mes.IsSuccessStatusCode) { var Bytes = await mes.Content.ReadAsByteArrayAsync(); var FileName = url.GetAfterLast("/")?.GetBeforeFirst("?"); FileBytes b = new FileBytes(FileName, Bytes); if (mes.Content.Headers.ContentDisposition != null) { b.FileName = mes.Content.Headers.ContentDisposition.FileName; } if (mes.Content.Headers.ContentType != null) { b.MimeType = mes.Content.Headers.ContentType.MediaType; } else { b.MimeType = MimeData.GetFileMimeType(b.FileName); } return(b); } else { string message = await mes.Content.ReadAsStringAsync(); throw new CodeShellHttpException(mes.StatusCode, message); } }
static void send(string subject, User to) { try { MailBuilder builder = new MailBuilder(); builder.Html = @"Html with an image: <img src=""cid:lena"" />"; builder.Subject = subject; MimeData visual = builder.AddVisual(HostingEnvironment.MapPath("~/Images/logo_2.png")); visual.ContentId = "lena"; MimeData attachment = builder.AddAttachment(@"C:\Users\User\Desktop\Attachment.txt"); attachment.FileName = "document.doc"; builder.From.Add(new MailBox("*****@*****.**")); builder.To.Add(new MailBox(to.Email)); //builder.To.Add(new MailBox("*****@*****.**")); IMail email = builder.Create(); using (Smtp smtp = new Smtp()) { smtp.Connect(_server); // or ConnectSSL for SSL smtp.UseBestLogin(_user, _password); smtp.SendMessage(email); smtp.Close(); } } catch (Exception e) { Console.WriteLine(e.Message); } }
public void CopyToEmailOut(MimeData theAttachment, AowGame theGame) { if (theAttachment != null && theGame != null) { string fileName = theAttachment.FileName; if (!string.IsNullOrEmpty(fileName)) { string destPath = Path.Combine(theGame.EmailOut.FullName, fileName); if (File.Exists(destPath)) { File.Delete(destPath); } theAttachment.Save(destPath); } } }
/// <summary> /// Build email from MailBuilder using interface IMail, pass to SendMail() /// </summary> /// <param name="sendTo">Recipient</param> /// <param name="sendSubject">Subject</param> /// <param name="sendMailContents">Body</param> /// <param name="sendFrom">Sender</param> public void ProcessMailToSend(string sendTo, string sendSubject, string sendMailContents, string sendFrom) { // Append scalemail signature sendMailContents += "<br/>Sent using <img src=\"http://i42.photobucket.com/albums/e333/rcastoro1/scalemailSignature_zpse308b52b.gif \" border=\"0\" alt=\" photo scalemailSignature_zpse308b52b.gif\"/> v1.0 ^-^"; MailBuilder builder = new MailBuilder(); builder.From.Add(new MailBox(sendFrom, "")); builder.To.Add(new MailBox(sendTo, "")); builder.Subject = sendSubject; builder.Html = sendMailContents; foreach (string attachment in _attachmentList) { MimeData attach = builder.AddAttachment(attachment); } IMail email = builder.Create(); SendMail(email); }
private void AddMessageToDrafts(string to, string subject, string rtf) { MailBuilder mailBuilder = new MailBuilder(); try { mailBuilder.From.Add(new MailBox(this.EmailBox.EmailAddress)); } catch (Exception) { return; } mailBuilder.To.Add(new MailBox(to)); mailBuilder.Subject = subject; mailBuilder.Rtf = rtf; for (int i = 0; i < this.Attachments.Count; i++) { MimeData mime = mailBuilder.AddAttachment(this.Attachments[i]); mime.FileName = (string)this.attachmentsListBox.Items[i]; } this.EmailBox.UploadMessageToDrafts(mailBuilder.Create()); }
private void SendButton_Click(object sender, RoutedEventArgs e) { if (this.encryptMessage.IsChecked == true && this.EmailBox.XmlStringChipherKeyContainerName is null) { MessageBox.Show("Для шифрования сообщения следует импортировать открытый ключ!", "Ошибка", MessageBoxButton.OK, MessageBoxImage.Error); return; } if (this.toTextBox.Text is null) { MessageBox.Show("Требуется ввести имя получателя.", "Ошибка", MessageBoxButton.OK, MessageBoxImage.Error); return; } MailBuilder mailBuilder = new MailBuilder(); mailBuilder.From.Add(new MailBox(this.EmailBox.EmailAddress)); try { mailBuilder.To.Add(new MailBox(this.toTextBox.Text.Trim(' '))); } catch (ArgumentException) { MessageBox.Show("Имя получателя написано в неверном формате.", "Ошибка", MessageBoxButton.OK, MessageBoxImage.Error); return; } mailBuilder.Subject = this.subjectTextBox.Text.Trim(' '); if (encryptMessage.IsChecked == true) { byte[] data = this.GetBytesFromRichTextBoxText(this.textRichTextBox); byte[] encData = Encrypter.EncryptWithAesAndRsa(data, this.EmailBox.XmlStringChipherKeyContainerName, true); byte[] signedData = Encrypter.SignData(encData, this.EmailBox.UserKeyContainerName); mailBuilder.Rtf = Convert.ToBase64String(signedData); } else { mailBuilder.Rtf = this.GetTextFromRichTextBox(this.textRichTextBox); } for (int i = 0; i < this.Attachments.Count; i++) { if (encryptMessage.IsChecked == true) { byte[] data = this.Attachments[i]; byte[] encData = Encrypter.EncryptWithAesAndRsa(data, this.EmailBox.XmlStringChipherKeyContainerName, true); byte[] signedData = Encrypter.SignData(encData, this.EmailBox.UserKeyContainerName); MimeData mime = mailBuilder.AddAttachment(signedData); mime.FileName = (string)this.attachmentsListBox.Items[i]; } else { MimeData mime = mailBuilder.AddAttachment(this.Attachments[i]); mime.FileName = (string)this.attachmentsListBox.Items[i]; } } IMail mail = mailBuilder.Create(); if (sendThread != null && sendThread.IsAlive) { sendThread.Abort(); sendThread.Join(); } sendThread = new Thread(() => { this.Dispatcher.Invoke(() => { this.sendButton.IsEnabled = false; Mouse.OverrideCursor = Cursors.AppStarting; }); this.EmailBox.Smtp.SendMessage(mail); this.Dispatcher.Invoke(() => { this.Close(); this.sendButton.IsEnabled = true; Mouse.OverrideCursor = null; }); }); sendThread.Start(); }
public void Dispose() { this._theAttachment = null; }
public ASGFileInfo(MimeData theAttachment) { _theAttachment = theAttachment; ParseProperties(); }
public void processAttachment(MimeData att, Configuration config, string mailAddress) { if (att.FileName.Contains("xls") || att.FileName.Contains("xlsx") || att.FileName.Contains("csv") || att.FileName.Contains("xml")) { Guid guid = Guid.NewGuid(); using (var unit = GetUnitOfWork()) { //BAS.EDI.Objects.Mail.MailLog mailLog = new MailLog(); //mailLog.Mailaddress = imail.From.First().Address; //mailLog.Filename = att.FileName; //mailLog.ReceiveDate = System.DateTime.Now; string ext = ".unknown"; if (att.FileName.Contains(".xlsx")) { ext = ".xlsx"; } else if (att.FileName.Contains(".xls")) { ext = ".xls"; } else if (att.FileName.Contains(".csv")) { ext = ".csv"; } string fileName = att.FileName; if (fileName.Contains(")")) { fileName = fileName.Replace(")", "-"); } if (fileName.Contains("(")) { fileName = fileName.Replace("(", "-"); } if (fileName.Contains("_")) { fileName = fileName.Replace("_", "-"); } Regex reg = new Regex("([0-9a-z_-]+[\\.][0-9a-z_-]{1,6})$"); fileName = reg.Match(fileName).Value; if (string.IsNullOrEmpty(fileName)) { fileName = ext; } //mailLog.UniqueCode = guid.ToString() + "-" + fileName; //context.MailLogs.InsertOnSubmit(mailLog); //context.SubmitChanges(); //if (!Directory.Exists(ConfigurationManager.AppSettings["ExcelMailDirectory"])) // Directory.CreateDirectory(ConfigurationManager.AppSettings["ExcelMailDirectory"]); string filepath = config.AppSettings.Settings["EdiOrderDir"].Value + guid.ToString() + "-" + fileName; using (MemoryStream ms = att.GetMemoryStream()) { FileStream outStream = File.OpenWrite(filepath); ms.WriteTo(outStream); outStream.Flush(); outStream.Close(); } ExcelReader excel = new ExcelReader(config.AppSettings.Settings["EdiOrderDir"].Value, log, unit); excel.ProcessFile(filepath, mailAddress); } } }
private IMail GetMailMessage(Guid guid, PECMail pecMail) { MailBuilder builder = new MailBuilder(); foreach (MailBox mailBox in MailStringToList(pecMail.MailSenders)) { builder.From.Add(mailBox); } foreach (MailBox mailBox in MailStringToList(pecMail.MailRecipients)) { builder.To.Add(mailBox); } foreach (MailBox mailBox in MailStringToList(pecMail.MailRecipientsCc)) { builder.Cc.Add(mailBox); } builder.Subject = string.IsNullOrEmpty(pecMail.MailSubject) ? string.Empty : StringHelper.ReplaceCrLf(pecMail.MailSubject); // Crea il corpo del messaggio di default (non è richiesto dall'Interoperabilità) o lo legge da base dati, se indicato builder.Text = (string.IsNullOrEmpty(pecMail.MailBody)) ? string.Format("Invio protocollo \"{0}\" ({1}/{2})", pecMail.MailSubject, pecMail.Number, pecMail.Year) : pecMail.MailBody; builder.MessageID = guid.ToString(); if (!string.IsNullOrEmpty(pecMail.Segnatura)) { // Estrae la segnatura dalla base dati e la allega alla mail in uscita MimeData xmlSegnatura = builder.AddAttachment(Encoding.GetEncoding(1252).GetBytes(pecMail.Segnatura)); xmlSegnatura.ContentType = new ContentType(MimeType.Text, MimeSubtype.Xml); xmlSegnatura.ContentId = "Segnatura.xml"; xmlSegnatura.FileName = "Segnatura.xml"; } // Estrae i relativi allegati da base dati (documento ed allegati) if ((pecMail.Attachments != null) && (pecMail.Attachments.Count > 0)) { byte[] attachmentByteArray; foreach (PECMailAttachment attachment in pecMail.Attachments) { try { attachmentByteArray = null; string attachmentName = FileHelper.ReplaceUnicode(FileHelper.ConvertUnicodeToAscii(attachment.AttachmentName)); if (pecMail.Location != null && !string.IsNullOrEmpty(pecMail.Location.DocumentServer) && attachment.IDDocument != Guid.Empty) { // Allora utilizzo l'idDocument BiblosDocumentInfo doc = new BiblosDocumentInfo(pecMail.Location.DocumentServer, attachment.IDDocument); attachmentByteArray = doc.Stream; FileLogger.Debug(_loggerName, string.Format("Caricamento allegato {0} della PEC {1} inserito da DSW8 utilizzando l'IDDocument", attachmentName, pecMail.Id)); } else { throw new Exception("L'allegato non contiene nè un idBiblos valido nè uno stream valido e pertanto non può essere inviato."); } MimeData document = builder.AddAttachment(attachmentByteArray); if (attachmentName.EndsWith(FileHelper.EML, StringComparison.InvariantCultureIgnoreCase)) { document.ContentType = new ContentType(MimeType.Message, MimeSubtype.Rfc822); } else { document.ContentType = new ContentType(MimeType.Application, MimeSubtype.OctetStream); } document.ContentId = attachmentName; document.FileName = attachmentName; } catch (Exception ex) { FileLogger.Error(_loggerName, string.Format("Errore in aggiunta allegati alla PECMail [{0}].", pecMail.Id), ex); } } } // Estrae il messaggio di ritorno dalla base dati, se presente e lo allega alla mail in uscita if (pecMail.MessaggioRitornoName != null && pecMail.MessaggioRitornoStream != null) { MimeData messaggioRitornoStream = builder.AddAttachment(Encoding.GetEncoding(1252).GetBytes(pecMail.MessaggioRitornoStream)); messaggioRitornoStream.ContentType = new ContentType(MimeType.Text, MimeSubtype.Xml); messaggioRitornoStream.ContentId = pecMail.MessaggioRitornoStream; messaggioRitornoStream.FileName = pecMail.MessaggioRitornoStream; } if (pecMail.MailPriority.HasValue) { switch (pecMail.MailPriority) { case -1: builder.Priority = MimePriority.NonUrgent; break; case 1: builder.Priority = MimePriority.Urgent; break; default: builder.Priority = MimePriority.Normal; break; } } else { builder.Priority = MimePriority.Normal; } return(builder.Create()); }
public MimeObject(MimeData mime) { _mimeData = mime; }