private void sendPoster(string filename) { FileInfo f = new FileInfo(filename); string local_filename = f.Name; Chilkat.MailMan mailman = new Chilkat.MailMan(); bool success; success = mailman.UnlockComponent("HAFSJOMAILQ_9QYSMgP0oR1h"); if (success != true) { throw new Exception(mailman.LastErrorText); } // Use the GMail SMTP server mailman.SmtpHost = Program.Smtphost; mailman.SmtpPort = int.Parse(Program.Smtpport); mailman.SmtpSsl = bool.Parse(Program.Smtpssl); // Set the SMTP login/password. mailman.SmtpUsername = Program.Smtpuser; mailman.SmtpPassword = Program.Smtppasswd; // Create a new email object Chilkat.Email email = new Chilkat.Email(); email.Subject = "Puls3060 Regnskab: " + local_filename; email.Body = "Puls3060 Regnskab: " + local_filename; //email.AddTo(Program.MailToName, Program.MailToAddr); email.From = Program.MailFrom; email.ReplyTo = Program.MailReply; email.AddBcc(Program.MailToName, Program.MailToAddr); email.AddFileAttachment(filename); email.UnzipAttachments(); success = mailman.SendEmail(email); if (success != true) { throw new Exception(email.LastErrorText); } }
// TODO: ProtectProcess - fix test, bring back mime //[Test] public void TestModifyMime() { IUniversalRequestObject uro = UroFromMimeBytes("TestPlainTextMessageBody"); // Lets change some properties on the mime string mimeContent = uro.OriginalContentBytes.Data.AsString(uro.OriginalContentBytes.Data.Length, Encoding.Unicode); // Lets get ride of the old mime uro.OriginalContentBytes.Data.Dispose(); // Now lets modify it. using (Chilkat.Email email = new Chilkat.Email()) { email.SetFromMimeText(mimeContent); email.Subject = "Processed: " + email.Subject; email.AddTo("blackhole2", "*****@*****.**"); email.AddCC("blackhole3", "*****@*****.**"); email.AddBcc("blackhole4", "*****@*****.**"); email.Body += " And don't forget it!"; email.AddFileAttachment(TEST_FILE_PATH + @"\test.ppt"); Assert.AreEqual(3, email.NumTo); Assert.AreEqual(2, email.NumCC); Assert.AreEqual(2, email.NumBcc); UnicodeEncoding encoding = new UnicodeEncoding(); string modifiedMime = MimeProxy.InsertBccRecipientsIntoMime(email); MemoryStream mimeStream = new MemoryStream(encoding.GetBytes(modifiedMime)); uro.OriginalContentBytes.Data = new Workshare.Policy.BinaryData(mimeStream); } // Lets synchronize the URO with the MIME. using (Stream str = uro.OriginalContentBytes.Data.AsStream()) { MimeProxy mimeProxy = new MimeProxy(str); Email2Uro email2Uro = new Email2Uro(mimeProxy); email2Uro.Convert(RequestChannel.Outlook, uro); } //sender Assert.IsTrue(1 == uro.Source.Items.Count, "Should only be a single source item"); Assert.AreEqual("*****@*****.**", uro.Source.Items[0].Content, "Mismatch in email emailAddress"); Assert.AreEqual("lnpair", uro.Source.Items[0].Properties[SMTPPropertyKeys.DisplayName], "Mismatch in email emailAddress"); //recips Assert.AreEqual(7, uro.Destination.Items.Count); Assert.AreEqual("*****@*****.**", uro.Destination.Items[0].Content, "Mismatch in email emailAddress"); Assert.AreEqual("Black Hole", uro.Destination.Items[0].Properties[SMTPItemPropertyKeys.DisplayName], "Mismatch in email emailAddress"); Assert.AreEqual(AddressType.To, uro.Destination.Items[0].Properties[SMTPItemPropertyKeys.AddressType], "Destination item 1 should be of AddressType: To"); Assert.AreEqual("*****@*****.**", uro.Destination.Items[1].Content, "Mismatch in email emailAddress"); Assert.AreEqual("Pair Adm", uro.Destination.Items[1].Properties[SMTPItemPropertyKeys.DisplayName], "Mismatch in email emailAddress"); Assert.AreEqual(AddressType.To, uro.Destination.Items[1].Properties[SMTPItemPropertyKeys.AddressType], "Destination item 2 should be of AddressType: To"); Assert.AreEqual("*****@*****.**", uro.Destination.Items[2].Content, "Mismatch in email emailAddress"); Assert.AreEqual("lnpair", uro.Destination.Items[2].Properties[SMTPItemPropertyKeys.DisplayName], "Mismatch in email emailAddress"); Assert.AreEqual(AddressType.CC, uro.Destination.Items[2].Properties[SMTPItemPropertyKeys.AddressType], "Destination item 3 should be of AddressType: Cc"); Assert.AreEqual("*****@*****.**", uro.Destination.Items[3].Content, "Mismatch in email emailAddress"); Assert.AreEqual("*****@*****.**", uro.Destination.Items[3].Properties[SMTPItemPropertyKeys.DisplayName], "Mismatch in email emailAddress"); Assert.AreEqual(AddressType.BCC, uro.Destination.Items[3].Properties[SMTPItemPropertyKeys.AddressType], "Destination item 3 should be of AddressType: Bcc"); // New recipients added. Assert.AreEqual("*****@*****.**", uro.Destination.Items[4].Content, "Mismatch in email emailAddress"); Assert.AreEqual("blackhole2", uro.Destination.Items[4].Properties[SMTPItemPropertyKeys.DisplayName], "Mismatch in email emailAddress"); Assert.AreEqual(AddressType.To, uro.Destination.Items[4].Properties[SMTPItemPropertyKeys.AddressType], "Destination item 3 should be of AddressType: Bcc"); Assert.AreEqual("*****@*****.**", uro.Destination.Items[5].Content, "Mismatch in email emailAddress"); Assert.AreEqual("blackhole3", uro.Destination.Items[5].Properties[SMTPItemPropertyKeys.DisplayName], "Mismatch in email emailAddress"); Assert.AreEqual(AddressType.CC, uro.Destination.Items[5].Properties[SMTPItemPropertyKeys.AddressType], "Destination item 3 should be of AddressType: Bcc"); Assert.AreEqual("*****@*****.**", uro.Destination.Items[6].Content, "Mismatch in email emailAddress"); Assert.AreEqual("blackhole4", uro.Destination.Items[6].Properties[SMTPItemPropertyKeys.DisplayName], "Mismatch in email emailAddress"); Assert.AreEqual(AddressType.BCC, uro.Destination.Items[6].Properties[SMTPItemPropertyKeys.AddressType], "Destination item 3 should be of AddressType: Bcc"); //attachments Assert.AreEqual(1, uro.Attachments.Count); Assert.AreEqual("test.ppt", uro.Attachments[0].Name, "Mismatch in attachment name"); Assert.AreEqual("application/vnd.ms-powerpoint; name=test.ppt", uro.Attachments[0].ContentType, "Mismatch in attachment content type"); Assert.IsTrue(0 < uro.Attachments[0].Data.Length, "Expected the attachments data length to be greater then zero"); using (Stream str = uro.Attachments[0].Data.AsStream()) { Assert.IsTrue(0 < str.Length, "Expected to find a non-empty stream"); } //properties Assert.AreEqual(8, uro.Properties.Count); Assert.AreEqual(String.Empty, uro.Properties[MailMessagePropertyKeys.FileHeader], "Mismatch in Property"); Assert.AreEqual("This body is plain text. And don't forget it!", uro.Properties[MailMessagePropertyKeys.Body], "Mismatch in Property"); Assert.AreEqual("This body is plain text. And don't forget it!", uro.Properties[MailMessagePropertyKeys.FormattedBody], "Mismatch in Property"); Assert.AreEqual("Processed: TestPlainTextMessageBody", uro.Properties[MailMessagePropertyKeys.Subject], "Mismatch in Property"); Assert.AreEqual("Outlook", uro.Properties[SMTPPropertyKeys.RequestChannel], "Mismatch in Property"); Assert.AreEqual("test.ppt ", uro.Properties[MailMessagePropertyKeys.Attachments], "Mismatch in Property"); Assert.AreEqual("3", uro.Properties[MailMessagePropertyKeys.xPriority], "Mismatch in Property"); uro.OriginalContentBytes.Data.Dispose(); foreach (RequestAttachment ra in uro.Attachments) { ra.Dispose(); } }
public void TestModifyMimeUsingChilkatDirectly() { byte[] mimebytes = File.ReadAllBytes(Path.Combine(m_testPath, "TestPlainTextMessageBody")); using (MimeProxy proxy = new MimeProxy(mimebytes)) { // Now lets modify it. using (Chilkat.Email email = new Chilkat.Email()) { email.SetFromMimeText(proxy.MimeContent); email.Subject = "Processed: " + email.Subject; email.AddTo("blackhole2", "*****@*****.**"); email.AddCC("blackhole3", "*****@*****.**"); email.AddBcc("blackhole4", "*****@*****.**"); email.Body += " And don't forget it!"; email.AddFileAttachment(Path.Combine(m_testPath, @"test.ppt")); Assert.AreEqual(3, email.NumTo); Assert.AreEqual(2, email.NumCC); Assert.AreEqual(2, email.NumBcc); proxy.MimeContent = MimeProxy.InsertBccRecipientsIntoMime(email); } Assert.AreEqual("*****@*****.**", proxy.Sender.EmailAddress, "Mismatch in email emailAddress"); Assert.AreEqual("lnpair", proxy.Sender.Name, "Mismatch in email emailAddress"); Assert.AreEqual(3, proxy.ToRecipients.Count); Assert.AreEqual(2, proxy.CcRecipients.Count); Assert.AreEqual(2, proxy.BccRecipients.Count); Assert.AreEqual("*****@*****.**", proxy.ToRecipients[0].EmailAddress, "Mismatch in email emailAddress"); Assert.AreEqual("Black Hole", proxy.ToRecipients[0].Name, "Mismatch in email emailAddress"); Assert.AreEqual("*****@*****.**", proxy.ToRecipients[1].EmailAddress, "Mismatch in email emailAddress"); Assert.AreEqual("Pair Adm", proxy.ToRecipients[1].Name, "Mismatch in email emailAddress"); Assert.AreEqual("*****@*****.**", proxy.ToRecipients[2].EmailAddress, "Mismatch in email emailAddress"); Assert.AreEqual("blackhole2", proxy.ToRecipients[2].Name, "Mismatch in email emailAddress"); Assert.AreEqual("*****@*****.**", proxy.CcRecipients[0].EmailAddress, "Mismatch in email emailAddress"); Assert.AreEqual("lnpair", proxy.CcRecipients[0].Name, "Mismatch in email emailAddress"); Assert.AreEqual("*****@*****.**", proxy.CcRecipients[1].EmailAddress, "Mismatch in email emailAddress"); Assert.AreEqual("blackhole3", proxy.CcRecipients[1].Name, "Mismatch in email emailAddress"); Assert.AreEqual("*****@*****.**", proxy.BccRecipients[0].EmailAddress, "Mismatch in email emailAddress"); Assert.AreEqual("*****@*****.**", proxy.BccRecipients[0].Name, "Mismatch in email emailAddress"); Assert.AreEqual("*****@*****.**", proxy.BccRecipients[1].EmailAddress, "Mismatch in email emailAddress"); Assert.AreEqual("blackhole4", proxy.BccRecipients[1].Name, "Mismatch in email emailAddress"); Assert.AreEqual(1, proxy.Attachments.Count); Assert.AreEqual("test.ppt", proxy.Attachments[0].DisplayName, "Mismatch in attachment name"); Assert.AreEqual("application/vnd.ms-powerpoint; name=test.ppt", proxy.Attachments[0].ContentType, "Mismatch in attachment content type"); Assert.IsTrue(proxy.Attachments[0].FileName.Contains("test.ppt"), "Expected to find a non-empty stream"); Assert.AreEqual("This body is plain text. And don't forget it!", proxy.FormattedBodyText, "Mismatch in Property"); Assert.AreEqual("Processed: TestPlainTextMessageBody", proxy.Subject, "Mismatch in Property"); } }
public SendEmail(string MedlemsNr, string IntNavn, string AfdMail, string FilePDF, string emailModt, string Kategori) { Chilkat.MailMan mailman = new Chilkat.MailMan(); bool success = mailman.UnlockComponent("PROBITMAILQ_ckTyt6oroW8J"); if (success != true) { MyVars.EmailSendtOK = false; MyVars.MailFejltekst = "Licens problemer: " + mailman.LastErrorText; MyVars.emailBody = ""; MyVars.emailSubj = ""; return; } mailman.SmtpHost = "172.16.2.150"; // Set the SMTP login/password (if required) //mailman.SmtpUsername = "******"; //mailman.SmtpPassword = "******"; Chilkat.Email email = new Chilkat.Email(); if (MedlemsNr != "") { if (Kategori != "") { EGBoligData EGData = new EGBoligData(); Mail oMailData = EGData.GetMailData(Kategori); // her hentes mail-tekster fra EGBolig tabel if (MyVars.emailSubj == "") { MyVars.emailSubj = oMailData.Emne; } MyVars.emailSubj = MyVars.emailSubj.Replace("[Selskab_Nr]", "099"); MyVars.emailSubj = MyVars.emailSubj.Replace("[Medlem_Nr]", MedlemsNr); string emailBodyx = oMailData.Tekst; emailBodyx = emailBodyx.Replace("[Medlem_Navn]", IntNavn); emailBodyx = emailBodyx.Replace("[Bruger_Navn]", ""); if (MyVars.emailBody == "") { MyVars.emailBody += emailBodyx; } } else { MyVars.emailSubj = "Medlemsbrev fra Boligkontoret Danmark"; MyVars.emailBody = "Medlemsbrev fra Boligkontoret Danmark"; } } if (Properties.Settings.Default.Common_PROD == false) { emailModt = Properties.Settings.Default.Common_Email_Testmodt; //her sikres at alle emails sendes til kism (anvendes til test) } email.Subject = MyVars.emailSubj; email.Body = MyVars.emailBody; email.From = AfdMail; //emailModt = "*****@*****.**"; email.AddBcc("", emailModt); if (FilePDF != "") { string contentType = email.AddFileAttachment(FilePDF); if (string.IsNullOrEmpty(contentType)) { MyVars.EmailSendtOK = false; MyVars.MailFejltekst = "Dokument kunne ikke vedhæftes e-mail pga. fejl: " + mailman.LastErrorText; MyVars.emailBody = ""; MyVars.emailSubj = ""; return; } } success = mailman.SendEmail(email); if (success != true) { MyVars.EmailSendtOK = false; MyVars.emailBody = ""; MyVars.emailSubj = ""; return; } else { MyVars.EmailSendtOK = true; MyVars.MailFejltekst = ""; } success = mailman.CloseSmtpConnection(); if (success != true) { MyVars.EmailSendtOK = false; MyVars.MailFejltekst = "Connection fejl opstået ved afsendelse af e-mail: Connection to SMTP server not closed cleanly: " + mailman.LastErrorText; } MyVars.emailBody = ""; MyVars.emailSubj = ""; }
private void ZipFiles(object sender, DoWorkEventArgs e) { DataTable dt = VSWebBL.ConfiguratorBL.FeedbackBL.Ins.GetCompanyName(); string companyname = dt.Rows[0]["CompanyName"].ToString(); object[] paramsToReceive = e.Argument as object[]; string[] paths = paramsToReceive[0] as string[]; //string paths = paramsToReceive[0].ToString(); string emailAddressToSendTo = paramsToReceive[1] as string; string logPath = ""; logPath = VSWebBL.SettingBL.SettingsBL.Ins.Getvalue("Log Files Path"); if (logPath == "") { logPath = AppDomain.CurrentDomain.BaseDirectory.ToString(); } try { string[] oldZipFiles = System.IO.Directory.GetFiles(logPath, "LogFiles.z*"); foreach (string file in oldZipFiles) { System.IO.File.Delete(file); } ZipFile zip = new ZipFile(); zip.AddFiles(paths); zip.MaxOutputSegmentSize = 3 * 1024 * 1024; zip.Save(logPath + "LogFiles.zip"); string[] zipFiles = System.IO.Directory.GetFiles(logPath, "LogFiles.z*"); string host = VSWebBL.SettingBL.SettingsBL.Ins.Getvalue("PrimaryHostName"); string port = VSWebBL.SettingBL.SettingsBL.Ins.Getvalue("primaryport"); bool auth = Convert.ToBoolean(VSWebBL.SettingBL.SettingsBL.Ins.Getvalue("primaryAuth").ToString()); string PEmail = VSWebBL.SettingBL.SettingsBL.Ins.Getvalue("primaryUserID"); string Ppwd = VSWebBL.SettingBL.SettingsBL.Ins.Getvalue("primarypwd"); bool PSSL = Convert.ToBoolean(VSWebBL.SettingBL.SettingsBL.Ins.Getvalue("primarySSL").ToString()); bool gmail = host.ToUpper().Contains("GMAIL"); Chilkat.MailMan mailman = new Chilkat.MailMan(); try { mailman.UnlockComponent("MZLDADMAILQ_8nzv7Kxb4Rpx"); } catch (Exception ex) { Log.Entry.Ins.WriteHistoryEntry(DateTime.Now.ToString() + " Error unlocking chilkat. Exception - " + ex.Message); } mailman.SmtpPort = Convert.ToInt32(port); mailman.SmtpHost = host; if (auth) { mailman.SmtpPassword = Ppwd; mailman.SmtpUsername = PEmail; } if (gmail && mailman.SmtpPort != 587) { mailman.SmtpPort = 587; mailman.SmtpSsl = true; } string errors = ""; for (int i = 0; i < zipFiles.Length; i++) { string file = zipFiles[i]; Chilkat.Email email = new Chilkat.Email(); //email.Body = "Log Files sent from " + Session["UserLogin"].ToString() + ". File " + (i + 1) + " of " + zipFiles.Length + "."; email.Body = "Feedback received from " + companyname + " Details: \n\rSubject: " + Session["subject"].ToString() + "\nType :" + Session["Type36"].ToString() + "\nMessage :" + Session[" Message"].ToString() + "\nStatus:" + Session["Status"].ToString() + "\nAttachments:" + Session["filepath"].ToString() + " "; email.Subject = "VSPlus-Feedback:CompanyName:" + companyname + ""; email.AddTo("RPR Wyatt", emailAddressToSendTo); email.FromAddress = PEmail; email.FromName = PEmail; email.AddFileAttachment(file); bool success = mailman.SendEmail(email); if (!success) { email = new Chilkat.Email(); email.Body = "Attachements sent from " + Session["UserLogin"].ToString() + ". File " + zipFiles[i] + " did not send due to an unknown error."; email.Subject = "Log Files"; email.AddTo("RPR Wyatt", emailAddressToSendTo); email.FromAddress = PEmail; email.FromName = PEmail; mailman.SendEmail(email); Log.Entry.Ins.WriteHistoryEntry(DateTime.Now.ToString() + " Error sending file " + zipFiles[i] + "."); continue; } System.IO.File.Delete(file); } mailman.Dispose(); } catch (Exception ex) { Log.Entry.Ins.WriteHistoryEntry(DateTime.Now.ToString() + " Error zipping log files. Exception - " + ex.Message); } }
/// <summary> /// 发送邮件 /// </summary> /// <param name="SmtpServer"></param> /// <param name="SmtpPort"></param> /// <param name="AccountMail"></param> /// <param name="AccountPwd"></param> /// <param name="FromName"></param> /// <param name="To"></param> /// <param name="CC"></param> /// <param name="Bcc"></param> /// <param name="Subject"></param> /// <param name="Body"></param> /// <param name="attachmentList"></param> /// <param name="Priority"></param> /// <param name="IsUseCredentials"></param> /// <param name="MainEncoding"></param> /// <param name="isHtml"></param> /// <param name="IsSSL"></param> /// <returns></returns> public static bool SendMailEx(string SmtpServer, int SmtpPort, string AccountMail, string AccountPwd, string FromName, string To, string CC, string Bcc, string Subject, string Body, IList <string> attachmentList, int Priority, bool IsUseCredentials, string MainEncoding, bool isHtml, bool IsSSL) { //过滤掉邮件帐号中的@以及域名 if (AccountMail.Contains("@")) { AccountMail = AccountMail.Substring(0, AccountMail.IndexOf("@")); } //获取发件人邮箱 string FromMail = string.Empty; if (SmtpServer.Contains(';')) { string[] SmtpServers = SmtpServer.Split(';'); SmtpServer = SmtpServers[0]; FromName = AccountMail + "@" + SmtpServers[1].Substring(SmtpServers[1].IndexOf('.') + 1, SmtpServers[1].Length - SmtpServers[1].IndexOf('.') - 1); } else { FromMail = AccountMail + "@" + SmtpServer.Substring(SmtpServer.IndexOf('.') + 1, SmtpServer.Length - SmtpServer.IndexOf('.') - 1); } string ToName = To.Substring(0, To.IndexOf("@")); Chilkat.MailMan mailman = new Chilkat.MailMan(); bool success = mailman.UnlockComponent("MAILT34MB34N_6ADE5E140UIY"); if (success != true) { return(false); } //设置SMTP服务器 mailman.SmtpHost = SmtpServer; mailman.SmtpSsl = IsSSL; mailman.SmtpPort = SmtpPort; //设置SMTP服务器登录信息 mailman.SmtpUsername = AccountMail; mailman.SmtpPassword = AccountPwd; //创建一个Email对象 Chilkat.Email email = new Chilkat.Email(); email.Subject = Subject; email.Body = Body; email.SetHtmlBody(Body); if (attachmentList != null) { // 附件 foreach (string attachment in attachmentList) { email.AddFileAttachment(attachment); } } email.From = "" + FromName + " <" + FromMail + ">"; email.AddTo("" + ToName + "", To); success = mailman.SendEmail(email); mailman.CloseSmtpConnection(); if (success != true) { return(false); } return(success); }
private void buttonSend_Click(object sender, EventArgs e) { if (txtTo.Text.Length == 0) { MessageBox.Show("Please Enter To Field", "Error", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); return; } if (txtFrom.Text.Length == 0) { MessageBox.Show("Please Enter From Field", "Error", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); return; } if (txtSubject.Text.Length == 0) { MessageBox.Show("Please Enter Subject Field", "Error", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); return; } // The mailman object is used for sending and receiving email. Chilkat.MailMan _mailman = new Chilkat.MailMan(); _success = _mailman.UnlockComponent("SCOTTGMAILQ_ZpcR8r2N6R7a"); // Create a new email object Chilkat.Email _email = new Chilkat.Email(); // Set the SMTP server. _mailman.SmtpHost = System.Configuration .ConfigurationManager.AppSettings["smtpaddress"]; _mailman.SmtpUsername = System.Configuration .ConfigurationManager.AppSettings["smtpid"]; _mailman.SmtpPassword = System.Configuration .ConfigurationManager.AppSettings["smtppwd"]; // You may need a login/password. In many cases, // authentication is not required when sending local email // (i.e. to email addresses having the same domain as the // SMTP server), but is required when sending to non-local // recipients. //mailman.SmtpUsername = "******"; //mailman.SmtpPassword = "******"; _email.Subject = txtSubject.Text; _email.Body = txtNote.Text; _email.From = txtFrom.Text; _email.AddTo(txtTo.Text, txtTo.Text); //Add any number of attachments: string contentType; contentType = _email.AddFileAttachment(_attachmentPath); _success = _mailman.SendEmail(_email); if (_success != true) { _errorMessage = _mailman.LastErrorText; } else { _sendEmail = FaxingServer.NewFaxingServer(); _sendEmail.FaxNumber = "None"; _sendEmail.FaxPageCount = 0; _sendEmail.FaxPath = _attachmentPath; _sendEmail.RecipientName = txtTo.Text; _sendEmail.DisplayName = txtFrom.Text; _sendEmail.Notes = "Subject: " + txtSubject.Text + " on " + DateTime.Now.ToShortDateString() + " at " + DateTime.Now.ToShortTimeString(); _sendEmail.ShowFax = "N"; _sendEmail.Save(); } this.Close(); }