public static void Run()
        {
            // ExStart:AddAttachment
            // The path to the File directory.
            string dataDir = RunExamples.GetDataDir_Email();

            // Create an instance of MailMessage class
            MailMessage message = new MailMessage {
                From = "*****@*****.**"
            };

            message.To.Add("*****@*****.**");

            // Load an attachment
            Attachment attachment = new Attachment(dataDir + "1.txt");

            // Add Multiple Attachment in instance of MailMessage class and Save message to disk
            message.Attachments.Add(attachment);
            message.AddAttachment(new Attachment(dataDir + "1.jpg"));
            message.AddAttachment(new Attachment(dataDir + "1.doc"));
            message.AddAttachment(new Attachment(dataDir + "1.rar"));
            message.AddAttachment(new Attachment(dataDir + "1.pdf"));
            message.Save(dataDir + "outputAttachments_out.msg", SaveOptions.DefaultMsgUnicode);
            // ExEnd:AddAttachment
        }
Exemplo n.º 2
0
        static void Main(string[] args)
        {
            //普通测试
            SmtpMailClient client = new SmtpMailClient("smtp.163.com", 25, true, "XXX", "XXX");

            client.Timeout = 18000;
            MailMessage msg = new MailMessage();

            msg.From = new MailAccount("*****@*****.**", "janky");
            msg.AddTo(new MailAccount("*****@*****.**", "测试1"));
            msg.AddTo(new MailAccount("*****@*****.**"));
            msg.AddCC(new MailAccount("*****@*****.**"));
            //msg.AddCC(new MailAccount("*****@*****.**"));
            msg.MailContent = "<p>IHU 发信IP因发送垃圾邮件或存在异常的连接行为,被暂时挂起。请检测发信IP在历史上的发信情况和发信程序是否存在异常;</p><a href='http://163.com'>163 邮箱</a>";
            msg.Subject     = "测试";
            msg.IsHtml      = true;
            client.Send(msg);

            //附件测试
            client         = new SmtpMailClient("smtp.163.com", 25, true, "XXX", "XXX");
            client.Timeout = 18000;
            msg            = new MailMessage();
            msg.From       = new MailAccount("*****@*****.**", "janky");
            msg.AddTo(new MailAccount("*****@*****.**", "测试1"));
            msg.AddTo(new MailAccount("*****@*****.**"));
            msg.AddCC(new MailAccount("*****@*****.**"));
            msg.MailContent = "<img src='cid:test1234' /><p>IHU 发信IP因发送垃圾邮件或存在异常的连接行为,被暂时挂起。请检测发信IP在历史上的发信情况和发信程序是否存在异常;</p><a href='http://163.com'>163 邮箱</a>";
            msg.Subject     = "测试";
            msg.IsHtml      = true;

            msg.AddAttachment(@"c:\test\test.txt");
            msg.AddAttachment(@"c:\test\taiwan.jpg", "test1234"); //这里是content-id
            msg.AddAttachment(@"c:\test\filechktool.rar");
            client.SendAsync(msg);

            //ssl 测试
            SmtpServerInfo info = new SmtpServerInfo("smtp.gmail.com", 465, true, "XXX", "janky,.XXX");

            info.EnableSsl = true;
            client         = new SmtpMailClient(info);
            client.Timeout = 18000;
            msg            = new MailMessage();
            msg.From       = new MailAccount("*****@*****.**", "系统");
            msg.AddTo(new MailAccount("*****@*****.**", "测试1"));
            msg.AddTo(new MailAccount("*****@*****.**"));
            msg.AddCC(new MailAccount("*****@*****.**"));
            msg.MailContent = "<p>IHU 发信IP因发送垃圾邮件或存在异常的连接行为,被暂时挂起。请检测发信IP在历史上的发信情况和发信程序是否存在异常;</p><a href='http://163.com'>163 邮箱</a>";
            msg.Subject     = "测试";
            msg.IsHtml      = true;
            client.Send(msg);
            Console.ReadKey();
        }
Exemplo n.º 3
0
        public SendEmailViewModel()
        {
            SendEmail = new DelegateCommand(() =>
            {
                MailMessage mailMessage = new MailMessage();

                mailMessage.UserName    = "******";
                mailMessage.Password    = "******";
                mailMessage.AccountType = MailMessage.AccountTypeEnum.Gmail;
                mailMessage.From        = "*****@*****.**";
                //set mail data

                mailMessage.To      = Email;
                mailMessage.Subject = "Collage";
                mailMessage.Body    = "Collage:";

                string image_name = "collage.jpg";
                using (IsolatedStorageFile myIsolatedStorage = IsolatedStorageFile.GetUserStoreForApplication())
                {
                    if (myIsolatedStorage.FileExists(image_name))
                    {
                        IsolatedStorageFileStream fStream = myIsolatedStorage.OpenFile(image_name, FileMode.Open, FileAccess.Read);
                        mailMessage.AddAttachment(fStream.Name);
                    }
                }

                mailMessage.Send();
            });
        }
Exemplo n.º 4
0
        public void TestSend()
        {
            try
            {
                Console.WriteLine("\r\n ----- Smtp Test Below -----");

                msg.Subject = subject;
                msg.Body    = body;
                msg.AddImage(@"..\lib\test attachments\test.jpg", "testimage");
                msg.AddImage(@"..\lib\test attachments\test2.jpg", "testimage2");
                msg.HtmlBody = "<body><table><tr><td><b>Here is an embedded IMAGE:<img src=\"cid:testimage\"></td></tr>\r\n<tr><td>Here's another: <img src=\"cid:testimage2\"></td></tr></table></body>";


                msg.AddRecipient(ccAddress, AddressType.Cc);
                msg.AddRecipient(bccAddress, AddressType.Bcc);

                msg.AddAttachment(@"..\lib\test attachments\test.jpg");
                msg.AddAttachment(new Attachment(new FileStream(@"..\lib\test attachments\test.htm", FileMode.Open, FileAccess.Read), "test.htm"));

                msg.AddCustomHeader("X-FakeTestHeader", "Fake Value");
                msg.AddCustomHeader("X-AnotherFakeTestHeader", "Fake Value");
                msg.Notification = true;
                msg.Charset      = "ISO-8859-1";
                msg.Priority     = MailPriority.Low;


                smtp.Username = "******";
                smtp.Password = "******";


                for (int i = 0; i < 1; i++)
                {
                    smtp.SendMail(msg);
                }
            }
            catch (SmtpException se)
            {
                Assertion.Fail("TestSend() threw a SmtpException: " + se.Message);
            }
            catch (System.Exception e)
            {
                Assertion.Fail("TestSend() threw a System.Exception: " + e.Message + "; Target: " + e.TargetSite);
            }
        }
Exemplo n.º 5
0
        public async Task SendMail()
        {
            var message = new MailMessage("*****@*****.**", "Test", "This is a test", "*****@*****.**", "*****@*****.**");

            message.AddAttachment("/Users/otto/me.png");
            var receipt = await Api.Mail.SendAsync(message);

            Assert.IsNull(receipt.ID);
            Assert.AreNotEqual(1, receipt.AcceptedRecipients);
            Assert.AreEqual(0, receipt.RejectedRecipients);
        }
        public static void Run()
        {
            // ExStart:ManagingEmailAttachments
            // The path to the File directory.
            string dataDir = RunExamples.GetDataDir_Email();
         
            // Create an instance of MailMessage class
            MailMessage message = new MailMessage {From = "*****@*****.**"};
            message.To.Add("*****@*****.**");

            // Load an attachment
            Attachment attachment = new Attachment(dataDir + "1.txt");

            // Add Multiple Attachment in instance of MailMessage class and Save message to disk
            message.Attachments.Add(attachment);           
            message.AddAttachment(new Attachment(dataDir + "1.jpg"));
            message.AddAttachment(new Attachment(dataDir + "1.doc"));
            message.AddAttachment(new Attachment(dataDir + "1.rar"));
            message.AddAttachment(new Attachment(dataDir + "1.pdf"));
            message.Save(dataDir + "outputAttachments_out.msg", SaveOptions.DefaultMsgUnicode);
            // ExEnd:ManagingEmailAttachments
        }
Exemplo n.º 7
0
        protected void Init()
        {
            sender        = "*****@*****.**";
            recipient     = "*****@*****.**";
            cc            = "*****@*****.**";
            senderName    = "FromName";
            recipientName = "ToName";
            ccName        = "ccName";
            subject       = "Mail Message Test\r\n";
            body          = "Hello from MailMessageTest";
            htmlBody      = "<HTML><HEAD></HEAD><BODY bgColor=\"#00ffff\"><b>Hello Jane. This is the body of the HTML mail message.</b></BODY></HTML>";
            charset       = "us-ascii";

            senderEmail    = new EmailAddress(sender, senderName);
            recipientEmail = new EmailAddress(recipient, recipientName);
            ccEmail        = new EmailAddress(cc, ccName);

            msg = new MailMessage(senderEmail, recipientEmail);
            msg.AddRecipient("*****@*****.**", AddressType.To);
            msg.AddRecipient("*****@*****.**", AddressType.To);
            msg.Subject  = subject;
            msg.Body     = body;
            msg.Charset  = charset;
            msg.Priority = MailPriority.High;

            msg.HtmlBody = htmlBody.ToString();
            msg.AddRecipient(ccEmail, AddressType.To);
            msg.AddRecipient(ccEmail, AddressType.Cc);
            msg.AddCustomHeader("X-Something", "Value");
            msg.AddCustomHeader("X-SomethingElse", "Value");
            msg.AddAttachment(@"..\lib\test attachments\test.jpg");
            msg.AddAttachment(@"..\lib\test attachments\test.htm");
            Attachment att = new Attachment(@"..\lib\test attachments\test.zip");

            msg.AddAttachment(att);


            msg.Notification = true;
        }
Exemplo n.º 8
0
        public void SendViaEmail(bool BatchOrNo, string to = null, string Subject = null, string Body = null)
        {
            FormCard(BatchOrNo);

            MailMessage emailMessage = new MailMessage();

            emailMessage.UserName    = "******";
            emailMessage.Password    = ServiceManager.DecryptPasscode("secret");
            emailMessage.AccountType = MailMessage.accountType.MicrosoftAccount;

            if ((emailMessage.UserName.ToLower()).Contains("gmail"))
            {
                emailMessage.AccountType = MailMessage.accountType.Gmail;
            }
            else if ((emailMessage.UserName.ToLower()).Contains("hotmail"))
            {
                emailMessage.AccountType = MailMessage.accountType.MicrosoftAccount;
            }

            if (to != null)
            {
                emailMessage.From    = App.User.Email;
                emailMessage.To      = to;
                emailMessage.Subject = Subject;
                emailMessage.Body    = Body;
            }
            else
            {
                emailMessage.From    = App.User.Email;
                emailMessage.To      = App.vCard.EmailAddress;
                emailMessage.Subject = App.vCard.EmailSubject;
                emailMessage.Body    = App.vCard.EmailBody;
            }

            if (App.FavoritesList != null)
            {
                using (IsolatedStorageFile store = IsolatedStorageFile.GetUserStoreForApplication())
                {
                    IsolatedStorageFileStream save = new IsolatedStorageFileStream("contact.vcf", System.IO.FileMode.Create, store);
                    StreamWriter writer            = new StreamWriter(save);
                    writer.Write(vCard);
                    writer.Close();
                }
            }

            emailMessage.AddAttachment("contact.vcf");
            emailMessage.Error    += emailMessage_Error;
            emailMessage.MailSent += emailMessage_MailSent;
            emailMessage.Send();
        }
        public static void Run()
        {
            // ExStart:RemoveAttachments
            // The path to the File directory.
            string dataDir         = RunExamples.GetDataDir_Email();
            string dstEmailRemoved = dataDir + "RemoveAttachments.msg";

            // Create an instance of MailMessage class
            MailMessage message = new MailMessage();

            message.From = "*****@*****.**";
            message.To.Add("*****@*****.**");

            // Load an attachment
            Attachment attachment = new Attachment(dataDir + "1.txt");

            // Add Multiple Attachment in instance of MailMessage class and Save message to disk
            message.Attachments.Add(attachment);
            message.AddAttachment(new Attachment(dataDir + "1.jpg"));
            message.AddAttachment(new Attachment(dataDir + "1.doc"));
            message.AddAttachment(new Attachment(dataDir + "1.rar"));
            message.AddAttachment(new Attachment(dataDir + "1.pdf"));

            // Remove attachment from your MailMessage and Save message to disk after removing a single attachment
            message.Attachments.Remove(attachment);
            message.Save(dstEmailRemoved, SaveOptions.DefaultMsgUnicode);

            // Create a loop to display the no. of attachments present in email message
            foreach (Attachment getAttachment in message.Attachments)
            {
                // Save your attachments here and Display the the attachment file name
                getAttachment.Save(dataDir + "/RemoveAttachments/" + "attachment_out" + getAttachment.Name);
                Console.WriteLine(getAttachment.Name);
            }
            // ExEnd:RemoveAttachments
            Console.WriteLine(Environment.NewLine + "Attachments removed successfully from " + dstEmailRemoved);
        }
Exemplo n.º 10
0
        private void button1_Click(object sender, EventArgs e)
        {
            Email email = new Email();

            email.strToMailbox.Add("*****@*****.**");


            MailMessage msg = new MailMessage();

            msg.Subject = "这是测试邮件";                                   //邮件标题
            msg.Body    = "邮件内容:hello world!";                        //邮件内容
            msg.AddAttachment(ref msg, "E:\\新建文件夹", "Jellyfish.jpg"); ////email.AddAttachment("E:\\新建文件夹");

            email.Send(msg);
        }
Exemplo n.º 11
0
        public void TestAttachmentSort()
        {
            // test MailMessage(string, string) constructor
            MailMessage msg = new MailMessage("*****@*****.**", "*****@*****.**");

            // test MailMessage(EamilAddress, EmailAddress) constructor
            EmailAddress from = new EmailAddress("*****@*****.**", "Fake Sender");
            EmailAddress to   = new EmailAddress("*****@*****.**", "Fake Recipient");


            Attachment att = new Attachment(@"..\lib\test attachments\test.htm");

            msg.AddAttachment(att);

            Attachment att2 = new Attachment(@"..\lib\test attachments\test.gar");

            msg.AddAttachment(att2);

            Attachment att3 = new Attachment(@"..\lib\test attachments\test.zip");

            msg.AddAttachment(att3);

            Attachment att4 = new Attachment(@"..\lib\test attachments\test.longextension");

            msg.AddAttachment(att4);

            ArrayList attachments = msg.Attachments;

            attachments.Sort();

            Console.WriteLine("\r\n ----- MailMessage.Attachments after sorting -----");
            foreach (Attachment attachment in attachments)
            {
                Console.WriteLine(attachment.Name);
            }
        }
        public static void Run()
        {
            // ExStart:RemoveAttachments
            // The path to the File directory.
            string dataDir = RunExamples.GetDataDir_Email();
            string dstEmailRemoved = dataDir + "RemoveAttachments.msg";

            // Create an instance of MailMessage class
            MailMessage message = new MailMessage();
            message.From = "*****@*****.**";
            message.To.Add("*****@*****.**");

            // Load an attachment
            Attachment attachment = new Attachment(dataDir + "1.txt");

            // Add Multiple Attachment in instance of MailMessage class and Save message to disk
            message.Attachments.Add(attachment);
            message.AddAttachment(new Attachment(dataDir + "1.jpg"));
            message.AddAttachment(new Attachment(dataDir + "1.doc"));
            message.AddAttachment(new Attachment(dataDir + "1.rar"));
            message.AddAttachment(new Attachment(dataDir + "1.pdf"));

            // Remove attachment from your MailMessage and Save message to disk after removing a single attachment 
            message.Attachments.Remove(attachment);
            message.Save(dstEmailRemoved, SaveOptions.DefaultMsgUnicode);

            // Create a loop to display the no. of attachments present in email message
            foreach (Attachment getAttachment in message.Attachments)
            {
                // Save your attachments here and Display the the attachment file name
                getAttachment.Save(dataDir + "/RemoveAttachments/" + "attachment_out" + getAttachment.Name);
                Console.WriteLine(getAttachment.Name);
            }
            // ExEnd:RemoveAttachments
            Console.WriteLine(Environment.NewLine + "Attachments removed successfully from " + dstEmailRemoved);
        }
Exemplo n.º 13
0
        private async Task SendInternal(EmailInfo mail, Action <MailMessage> handleHtml)
        {
            using (var msg = new MailMessage())
            {
                CreateEmail(mail, msg, handleHtml);

                using (var client = new SmtpClient())
                {
                    if (_configuration.SendGridEnabled)
                    {
                        SetSendGridClient(client);
                    }
                    else
                    {
                        client.DeliveryMethod          = SmtpDeliveryMethod.SpecifiedPickupDirectory;
                        client.PickupDirectoryLocation = _configuration.LocalEmailDirectory;
                    }

                    var attachFileStreamsWithNames = mail.Attachments.Select(att => new Tuple <Stream, string>(ConvertToFileStream(att.Content), att.Name)).ToList();
                    try
                    {
                        attachFileStreamsWithNames.ForEach(attachment => msg.AddAttachment(new Attachment(attachment.Item1, attachment.Item2)));
                        await client.SendAsync(msg).ConfigureAwait(false);
                    }
                    finally
                    {
                        // dispose of each of the attachment streams
                        foreach (var attachFileStreamWithName in attachFileStreamsWithNames)
                        {
                            attachFileStreamWithName.Item1.Dispose();
                        }

                        // dispose of each attachment
                        foreach (var attachment in msg.Attachments)
                        {
                            attachment.Dispose();
                        }
                    }
                }

                _logger.LogInformation($"Email sent. To={mail.To.Email}; Subject={mail.Subject}");
            }
        }
Exemplo n.º 14
0
        void PhotoChooseCall(object sender, PhotoResult e)
        {
            if (e.TaskResult == TaskResult.OK)
            {
                #region Copy picture from Library to isolated storage.


                string fileName = "smtp_tmp\\" + System.IO.Path.GetFileName(e.OriginalFileName);

                BinaryReader objReader = new BinaryReader(e.ChosenPhoto);
                using (IsolatedStorageFile isStore = IsolatedStorageFile.GetUserStoreForApplication())
                {
                    if (isStore.DirectoryExists("smtp_tmp") == false)
                    {
                        isStore.CreateDirectory("smtp_tmp");
                    }

                    using (IsolatedStorageFileStream targetStream = isStore.OpenFile(fileName, FileMode.Create, FileAccess.Write))
                    {
                        // Initialize the buffer for 4KB disk pages.
                        byte[] readBuffer = new byte[4096];
                        int    bytesRead  = -1;

                        // Copy the image to isolated storage, 4K chunks at a time
                        while ((bytesRead = e.ChosenPhoto.Read(readBuffer, 0, readBuffer.Length)) > 0)
                        {
                            targetStream.Write(readBuffer, 0, bytesRead);
                        }
                    }
                }
                #endregion

                mailMessage.AddAttachment(fileName);

                this.listBoxAttachments.Items.Add(System.IO.Path.GetFileName(fileName) + "\r" + " - " + FormatBytes(MailMessage.FileSize(fileName))); //debug
            }
        }
Exemplo n.º 15
0
        public void SendViaEmail(bool BatchOrNo, string to = null, string Subject = null, string Body = null)
        {
            FormCard(BatchOrNo);

            MailMessage emailMessage = new MailMessage();

            emailMessage.UserName = "******";
            emailMessage.Password = ServiceManager.DecryptPasscode("secret");
            emailMessage.AccountType = MailMessage.accountType.MicrosoftAccount;

            if ((emailMessage.UserName.ToLower()).Contains("gmail"))
            {
                emailMessage.AccountType = MailMessage.accountType.Gmail;
            }
            else if ((emailMessage.UserName.ToLower()).Contains("hotmail"))
            {
                emailMessage.AccountType = MailMessage.accountType.MicrosoftAccount;
            }

            if (to != null)
            {
                emailMessage.From = App.User.Email;
                emailMessage.To = to;
                emailMessage.Subject = Subject;
                emailMessage.Body = Body;
            }
            else
            {
                emailMessage.From = App.User.Email;
                emailMessage.To = App.vCard.EmailAddress;
                emailMessage.Subject = App.vCard.EmailSubject;
                emailMessage.Body = App.vCard.EmailBody;
            }

            if (App.FavoritesList != null)
            {
                using (IsolatedStorageFile store = IsolatedStorageFile.GetUserStoreForApplication())
                {
                    IsolatedStorageFileStream save = new IsolatedStorageFileStream("contact.vcf", System.IO.FileMode.Create, store);
                    StreamWriter writer = new StreamWriter(save);
                    writer.Write(vCard);
                    writer.Close();
                }
            }

            emailMessage.AddAttachment("contact.vcf");
            emailMessage.Error += emailMessage_Error;
            emailMessage.MailSent += emailMessage_MailSent;
            emailMessage.Send();
        }
        public static void Run()
        {
            // The path to the documents directory.
            string dataDir = RunExamples.GetDataDir_SMTP();
            string dstEmail = dataDir + "outputAttachments.msg";
            string dstEmailRemoved = dataDir + "outputAttachmentRemoved.msg";

            //Create an instance of MailMessage class
            MailMessage message = new MailMessage();

            //From
            message.From = "*****@*****.**";

            //to whom
            message.To.Add("*****@*****.**");



            // 1.
            // Attaching an Attachment to an Email

            //Adding 1st attachment
            //Create an instance of Attachment class
            Attachment attachment;

            //Load an attachment
            attachment = new Attachment(dataDir + "1.txt");

            //Add attachment in instance of MailMessage class
            message.Attachments.Add(attachment);

            //Add 2nd Attachment
            message.AddAttachment(new Attachment(dataDir + "1.jpg"));

            //Add 3rd Attachment
            message.AddAttachment(new Attachment(dataDir + "1.doc"));

            //Add 4th Attachment
            message.AddAttachment(new Attachment(dataDir + "1.rar"));

            //Add 5th Attachment
            message.AddAttachment(new Attachment(dataDir + "1.pdf"));

            //Save message to disk
            message.Save(dstEmail, Aspose.Email.Mail.SaveOptions.DefaultMsgUnicode);



            // 2.
            // Removing an Attachment

            //Remove attachment from your MailMessage
            message.Attachments.Remove(attachment);

            //Save message to disk after removing a single attachment 
            message.Save(dstEmailRemoved, Aspose.Email.Mail.SaveOptions.DefaultMsgUnicode);



            // 3.
            // Display remaining attachment names from message and save attachments

            //Create a loop to display the no. of attachments present in email message
            foreach (Attachment atchmnt in message.Attachments)
            {

                //Save your attachments here
                atchmnt.Save(dataDir + "attachment_" + atchmnt.Name);

                //display the the attachment file name
                Console.WriteLine(atchmnt.Name);
            }

            Console.WriteLine(Environment.NewLine + "Attachments removed successfully from " + dstEmailRemoved);
        }
Exemplo n.º 17
0
        /// <param name="to">收件人地址,多个收件人之间使用 , 间隔</param>
        /// <param name="from">发件人地址</param>
        /// <param name="subject">主题</param>
        /// <param name="body">邮件内容</param>
        /// <param name="cc">抄送人地址,多个收件人之间使用 , 间隔</param>
        /// <param name="bcc">密送人地址,多个收件人之间使用 , 间隔</param>
        /// <param name="attachFiles">附件文件列表</param>
        /// <param name="toName"></param>
        /// <returns>发送成功返回 -1; 发送失败抛出异常</returns>
        public static MailMessage ConstrucEmailMessage(string to, string from, string subject, string body, string cc = null, string bcc = null, string[] attachFiles = null,
                                                       string toName = null)
        {
            MailMessage msg = new MailMessage();

            msg.From = new EmailAddress(from, from);

            string[] toaddrs = to.Split(new char[] { ',', ';' });
            string[] toNames = null;
            if (toName != null)
            {
                toNames = toName.Split(new char[] { ',', ';' });
            }
            for (int i = 0; i < toaddrs.Length; i++)
            {
                if (toaddrs[i].Length > 0)
                {
                    // var name = toNames != null && toNames.Length > i ? toNames[i] : toaddrs[i];
                    // if (name.IndexOf("@") >= 0) name =  name.Substring(0, name.IndexOf("@"));
                    msg.To.Add(new EmailAddress(toaddrs[i]));
                }
            }
            if (!string.IsNullOrEmpty(cc))
            {
                var ccaddrs = cc.Split(new char[] { ',', ';' });
                for (int i = 0; i < ccaddrs.Length; i++)
                {
                    var email = ccaddrs[i];
                    if (!string.IsNullOrEmpty(email))
                    {
                        msg.CC.Add(new EmailAddress(email)); // , email.Substring(0, email.IndexOf("@")))
                    }
                }
            }

            if (!string.IsNullOrEmpty(bcc))
            {
                var bccaddrs = bcc.Split(new char[] { ',', ';' });
                for (int i = 0; i < bccaddrs.Length; i++)
                {
                    var email = bccaddrs[i];
                    if (!string.IsNullOrEmpty(email))
                    {
                        msg.BCC.Add(new EmailAddress(bccaddrs[i]));//  , email.Substring(0, email.IndexOf("@"))
                    }
                }
            }

            msg.Subject  = subject;
            msg.HtmlBody = body;

            if (attachFiles != null)
            {
                foreach (string i in attachFiles)
                {
                    //File aFile = new File(i);
                    msg.AddAttachment(i);
                }
            }
            return(msg);
        }
        public static void Run()
        {
            // The path to the documents directory.
            string dataDir         = RunExamples.GetDataDir_SMTP();
            string dstEmail        = dataDir + "outputAttachments.msg";
            string dstEmailRemoved = dataDir + "outputAttachmentRemoved.msg";

            //Create an instance of MailMessage class
            MailMessage message = new MailMessage();

            //From
            message.From = "*****@*****.**";

            //to whom
            message.To.Add("*****@*****.**");



            // 1.
            // Attaching an Attachment to an Email

            //Adding 1st attachment
            //Create an instance of Attachment class
            Attachment attachment;

            //Load an attachment
            attachment = new Attachment(dataDir + "1.txt");

            //Add attachment in instance of MailMessage class
            message.Attachments.Add(attachment);

            //Add 2nd Attachment
            message.AddAttachment(new Attachment(dataDir + "1.jpg"));

            //Add 3rd Attachment
            message.AddAttachment(new Attachment(dataDir + "1.doc"));

            //Add 4th Attachment
            message.AddAttachment(new Attachment(dataDir + "1.rar"));

            //Add 5th Attachment
            message.AddAttachment(new Attachment(dataDir + "1.pdf"));

            //Save message to disk
            message.Save(dstEmail, Aspose.Email.Mail.SaveOptions.DefaultMsgUnicode);



            // 2.
            // Removing an Attachment

            //Remove attachment from your MailMessage
            message.Attachments.Remove(attachment);

            //Save message to disk after removing a single attachment
            message.Save(dstEmailRemoved, Aspose.Email.Mail.SaveOptions.DefaultMsgUnicode);



            // 3.
            // Display remaining attachment names from message and save attachments

            //Create a loop to display the no. of attachments present in email message
            foreach (Attachment atchmnt in message.Attachments)
            {
                //Save your attachments here
                atchmnt.Save(dataDir + "attachment_" + atchmnt.Name);

                //display the the attachment file name
                Console.WriteLine(atchmnt.Name);
            }

            Console.WriteLine(Environment.NewLine + "Attachments removed successfully from " + dstEmailRemoved);
        }
Exemplo n.º 19
0
        private void CopyAttachments(IMessage msg, MailMessage outMsg)
        {
            MAPI33.IMAPITable attachmentsTable = null;
            msg.GetAttachmentTable(0, out attachmentsTable);
            using (attachmentsTable) {
                MAPI33.MapiTypes.Value[,] rows;
                attachmentsTable.SetColumns(new Tags[] {Tags.PR_ATTACH_FILENAME, Tags.PR_ATTACH_CONTENT_ID, Tags.PR_ATTACH_MIME_TAG, Tags.PR_ATTACH_ENCODING, Tags.PR_ATTACH_LONG_PATHNAME, Tags.PR_ATTACH_SIZE, Tags.PR_ATTACH_NUM},
                    IMAPITable.FLAGS.Default);

                //Use OpenAttach to get an IAttachment

                int attachIdx = 0;
                for( ;attachmentsTable.QueryRows(1, 0, out rows) == Error.Success && rows.Length > 0; ) {
                    try {
                        attachIdx++;
                        String attachFilename, attachMimeTag, attachContentId;
                        uint attachNum;
                        IAttachment attachObj;
                        byte[] attachData;

                        attachNum = (uint)((MapiInt32)rows[0,6]).Value;
                        msg.OpenAttach(attachNum, IAttachment.IID, 0, out attachObj);
                        using (attachObj) {
                            if (rows[0,0] is MapiString) {
                                attachFilename = ((MapiString)rows[0,0]).Value;
                            } else {
                                attachFilename = String.Format("Attach{0}.dat", attachIdx);
                            }

                            if (rows[0, 1] is MapiString) {
                                attachContentId = ((MapiString)rows[0, 1]).Value;
                            } else {
                                attachContentId = null;
                            }

                            if (rows[0,2] is MapiString) {
                                attachMimeTag = ((MapiString)rows[0,2]).Value;
                            } else {
                                attachMimeTag = String.Format("application/x-octet-stream");
                            }

                            IStream attachDataStream;
                            IUnknown unk;
                            Error hr = attachObj.OpenProperty(Tags.PR_ATTACH_DATA_BIN, IStream.IID, 0, 0, out unk);
                            //OLE object attachments are PR_ATTACH_DATA_OBJ, so if BIN isn't found, try that
                            if (hr == Error.NotFound) {
                                hr = attachObj.OpenProperty(Tags.PR_ATTACH_DATA_OBJ, IStream.IID, 0, 0, out unk);
                            }

                            if (hr == Error.Success) {
                                attachDataStream = (IStream)unk;
                                unk.Dispose();

                                using (attachDataStream) {
                                    int bytesRead = 0;
                                    ArrayList streamContents = new ArrayList();
                                    byte[] buffer = new byte[1024];

                                    do {
                                        attachDataStream.Read(buffer, (uint)buffer.Length, out bytesRead);
                                        if (bytesRead == buffer.Length) {
                                            streamContents.AddRange(buffer);
                                        } else {
                                            for (int idx = 0; idx < (int)bytesRead; idx++) {
                                                streamContents.Add(buffer[idx]);
                                            }
                                        }
                                    } while (bytesRead > 0);

                                    attachData = (byte[])streamContents.ToArray(typeof(byte));
                                }
                            } else {
                                attachData = System.Text.Encoding.ASCII.GetBytes(String.Format("Error getting contents of attachment '{0}' due to error '{1}'", attachFilename, hr));
                            }

                            //Use a MemoryStream to stream the attachment data into the Attachment object
                            using (MemoryStream ms = new MemoryStream(attachData)) {
                                outMsg.AddAttachment(ms, attachFilename, attachMimeTag, attachContentId);
                            }
                        }
                    } catch (Exception e) {
                        System.Diagnostics.Debug.WriteLine(e.ToString());
                    }
                }
            }
        }