void IEMailHelper.SendFileToEMail(string email, string title, string body, string filepath, Action <bool> completionHandler)
        {
            var message = new SMTPMessage();

            message.From    = "*****@*****.**";
            message.To      = email;
            message.Host    = "smtp.gmail.com";
            message.Account = "*****@*****.**";
            message.Pwd     = "2wsx4rfv8ik,";

            message.Subject = title;
            message.Content = body;
            var attach = new SMTPAttachment();

            attach.Name         = @"note.pdf";
            attach.FilePath     = filepath;
            message.Attachments = new SMTPAttachment[] { attach };

            message.Send(delegate(SMTPMessage msg, double current, double total)
            {
                // do nothing
            },
                         delegate(SMTPMessage msg)
            {
                completionHandler(true);
            },
                         delegate(SMTPMessage msg, Foundation.NSError error)
            {
                completionHandler(false);
            });
        }
Esempio n. 2
0
        public SmtpEmail(SMTPMessage message)
        {
            this.message = message;
            header = new SmtpEmailHeader(message);

            var msg = new SharpMessage(new MemoryStream(Encoding.ASCII.GetBytes(message.Data)), SharpDecodeOptions.None);
            body = msg.Body.Trim();
        }
Esempio n. 3
0
        public void BodyBase64()
        {
            SMTPMessage message = new SMTPMessage();

            message.AddData(TEST_BODY_BASE64);

            SMTPMessagePart[] messageParts = message.MessageParts;

            Assert.AreEqual(0, messageParts.Length, "AttachmentCount");
            Assert.AreEqual("attachment; filename=\"000000002.pdf\"", message.Headers["Content-Disposition"], "ContentDisposition");
        }
        public void BodyBase64()
        {
            var message = new SMTPMessage();
            message.AddData(TEST_BODY_BASE64);

            SMTPMessagePart[] messageParts = message.MessageParts;

            Assert.AreEqual(0, messageParts.Length, "AttachmentCount");
            Assert.AreEqual("attachment; filename=\"000000002.pdf\"", message.Headers["Content-Disposition"],
                            "ContentDisposition");
        }
Esempio n. 5
0
        public static IEmail ReadEmailFromFilePath(string path)
        {
            Assert.IsTrue(File.Exists(path));
            string emailText = File.ReadAllText(path);

            SMTPMessage msg = new SMTPMessage();
            msg.AddData(emailText);

            SmtpEmail email = new SmtpEmail(msg);

            return email;
        }
Esempio n. 6
0
        public void MessageHeaders()
        {
            SMTPMessage message = new SMTPMessage();

            message.AddData(TEST_SINGLE_BASE64);

            Assert.AreEqual("from development02 (development02 [127.0.0.1]) by adexs.com (Eric Daugherty's C# Email Server) 4/16/2004 10:35:58 AM", message.Headers["Received"], "Received");
            Assert.AreEqual("\"Eric Daugherty\" <*****@*****.**>", message.Headers["From"], "From");
            Assert.AreEqual("CofAs", message.Headers["Subject"], "Subject");
            Assert.AreEqual("Fri, 16 Apr 2004 10:35:55 -0500", message.Headers["Date"], "Date");
            Assert.AreEqual("Produced By Microsoft MimeOLE V6.00.2800.1409", message.Headers["X-MimeOLE"], "X-MimeOLE");
        }
        public void MessageHeaders()
        {
            var message = new SMTPMessage();
            message.AddData(TEST_SINGLE_BASE64);

            Assert.AreEqual(
                "from development02 (development02 [127.0.0.1]) by adexs.com (Eric Daugherty's C# Email Server) 4/16/2004 10:35:58 AM",
                message.Headers["Received"], "Received");
            Assert.AreEqual("\"Eric Daugherty\" <*****@*****.**>", message.Headers["From"], "From");
            Assert.AreEqual("CofAs", message.Headers["Subject"], "Subject");
            Assert.AreEqual("Fri, 16 Apr 2004 10:35:55 -0500", message.Headers["Date"], "Date");
            Assert.AreEqual("Produced By Microsoft MimeOLE V6.00.2800.1409", message.Headers["X-MimeOLE"], "X-MimeOLE");
        }
Esempio n. 8
0
        public void DoubleBase64Attachment()
        {
            SMTPMessage message = new SMTPMessage();

            message.AddData(TEST_DOUBLE_BASE64);

            SMTPMessagePart[] messageParts = message.MessageParts;

            Assert.AreEqual(2, messageParts.Length, "AttachmentCount");
            Assert.AreEqual(ATTACHMENT_1_HEADER_DATA, messageParts[0].HeaderData, "AttachmentHeaderData1");
            Assert.AreEqual(ATTACHMENT_1_BODY_DATA, messageParts[0].BodyData, "AttachmentBodyData1");
            Assert.AreEqual("application/pdf; name=\"000000001.pdf\"", messageParts[0].Headers["Content-Type"], "AttachmentContentType1");
            Assert.AreEqual("attachment; filename=\"000000001.pdf\"", messageParts[0].Headers["Content-Disposition"], "AttachmentContentDisposition1");
        }
        public void SingleBase64Attachment()
        {
            var message = new SMTPMessage();
            message.AddData(TEST_SINGLE_BASE64);

            SMTPMessagePart[] messageParts = message.MessageParts;

            Assert.AreEqual(1, messageParts.Length, "AttachmentCount");
            Assert.AreEqual(ATTACHMENT_1_HEADER_DATA, messageParts[0].HeaderData, "AttachmentHeaderData");
            Assert.AreEqual(ATTACHMENT_1_BODY_DATA, messageParts[0].BodyData, "AttachmentBodyData");
            Assert.AreEqual("application/pdf; name=\"000000001.pdf\"", messageParts[0].Headers["Content-Type"],
                            "AttachmentContentType");
            Assert.AreEqual("attachment; filename=\"000000001.pdf\"", messageParts[0].Headers["Content-Disposition"],
                            "AttachmentContentDisposition");
        }
Esempio n. 10
0
        public bool SpoolMessage(SMTPMessage message)
        {
            ServiceLocator.Current.Log.Information("Email encountered");

            try
            {
                GvEmailHandler handler = new GvEmailHandler();
                SmtpEmail email = new SmtpEmail(message);
                handler.HandleEmail(email);
            }
            catch (Exception ex)
            {
                // We can survive an Exception, since it only breaks this message's processing. Continue to strive for others.
                ServiceLocator.Current.Log.Warning("Exception in MessageSpool! " + ex.Message);
            }

            return true;
        }
            public bool SpoolMessage(SMTPMessage message)
            {
                if (Manager.Current.Application.DebugMode)
                    File.WriteAllText(
                        string.Format("In.{0:yyyyMMddhhmmssfffffff}.msg", DateTime.Now),
                        message.Data);

                ThreadPool.QueueUserWorkItem(x =>
                        {
                            var netMessage = new MailMessage
                                                {
                                                    From =
                                                        new MailAddress(
                                                        message.FromAddress.Address)
                                                };

                            foreach (var address in message.ToAddresses)
                                netMessage.To.Add(new MailAddress(address.Address));

                            //foreach (var key in message.Headers.Keys.Cast<string>())
                            //    netMessage.Headers[key] = message.Headers[key].ToString();

                            if (message.Headers.ContainsKey("Subject"))
                                netMessage.Subject = message.Headers["Subject"].ToString();
                            if (message.Headers.ContainsKey("Sender"))
                                netMessage.Sender =
                                    new MailAddress(message.Headers["Sender"].ToString());
                            if (message.Headers.ContainsKey("Reply-To"))
                                netMessage.ReplyToList.Add(new MailAddress(message.Headers["Reply-To"].ToString()));

                            var data = message.Data.Split(new[] {"\r\n\r\n"}, 2,
                                                        StringSplitOptions.None);
                            if (data.Length == 2) netMessage.Body = data[1];
                            if (netMessage.Body.EndsWith("\r\n\r\n"))
                                netMessage.Body = netMessage.Body.Substring(0,
                                                                            netMessage.Body.
                                                                                Length - 4);

                            _handleMessage(netMessage);
                        });
                return true;
            }
        public void DataTest()
        {
            Socket socket = Connect();

            CheckResponse(socket, "mail from:<user [email protected]>", "250");
            CheckResponse(socket, "rcpt to:<*****@*****.**>", "250");
            CheckResponse(socket, "data", "354");

            WriteLine(socket, "Date: Tue, 4 Nov 2003 10:13:27 -0600 (CST)");
            WriteLine(socket, "Subject: Test");
            WriteLine(socket, "");
            WriteLine(socket, "Message Body.");

            CheckResponse(socket, ".", "250");

            Disconnect(socket);

            SMTPMessage message = messageSpool.NextMessage();

            System.Console.WriteLine("Message Recieved: ");
            System.Console.Write(message.Data);
        }
Esempio n. 13
0
 public SmtpEmailHeader(SMTPMessage message)
 {
     this.message = message;
 }
 /// <summary>
 /// Adds the message to the in memory queue.
 /// </summary>
 /// <param name='message'>The message to queue.</param>
 public virtual bool SpoolMessage(SMTPMessage message)
 {
     _queue.Enqueue(message);
     return true;
 }
Esempio n. 15
0
        /// <summary>
        /// Not Implemented.
        /// </summary>
        /// <remarks>
        /// Interface method from IMessageSpool.
        /// </remarks>
        /// <param name='message'>The message to spool.</param>
        public virtual bool SpoolMessage(SMTPMessage message)
        {
            string fileName = DateTime.UtcNow.Ticks.ToString();
            while (System.IO.File.Exists(fileName))
            {
                fileName = DateTime.UtcNow.Ticks.ToString();
            }
            try
            {
                using (StreamWriter s = System.IO.File.CreateText(fileName))
                {
                    var serializer = new Serializer<SMTPMessage>();
                    var data = serializer.Serialize(message);
                    s.Write(data);
                    s.Flush();
                    s.Close();
                    return true;
                }

            }
            catch (Exception ex)
            {
                _log.Error("Can't spool message", ex);
                return false;
            }
        }
		/// <summary>
		/// Not Implemented.
		/// </summary>
		/// <remarks>
		/// Interface method from IMessageSpool.
		/// </remarks>
		/// <param name='message'>The message to spool.</param>
		public virtual bool SpoolMessage( SMTPMessage message )
		{
			throw new System.NotImplementedException();
		}