Exemple #1
0
        private static string EncodeField(string str)                   // 将字段值编码(含非ASCII码时)
        {
            string utf8Str   = MyEncoder.EncodeWithUTF8(str);
            string base64Str = MyEncoder.EncodeWithBase64(utf8Str);

            string encodedFieldStr = String.Format("=?UTF-8?B?{0}?=", base64Str);

            return(encodedFieldStr);
        }
Exemple #2
0
        /* 发送邮件 */
        private void SendBtnClick(object sender, RoutedEventArgs e)
        {
            if (ToTextBox.Text != null & DataTextBox.Text != null)
            {
                smtp.Init(smtpServerAddr, 25);                       // 初始化并登录邮箱
                smtp.Login(user, pwd);

                Email email = new Email();          // 创建一封邮件

                /* 信头 */
                Heading head = new Heading()
                {
                    From    = user,
                    To      = ToTextBox.Text,
                    Subject = SubjectTextBox.Text == null ? "Unknown" : SubjectTextBox.Text,     // TODO: 提取部分Data作为subject
                };

                /* 信体 */
                Body body = new Body();

                UTF8Encoding utf8     = new UTF8Encoding();
                byte[]       b        = utf8.GetBytes(MyEncoder.EncodeWithUTF8(DataTextBox.Text));
                Body         textBody = new Body()
                {
                    ContentType = Content_Type.Text_Plain,
                    Data        = b
                };

                if (attachments.Count != 0)
                {
                    body.ContentType = Content_Type.Multi_Mixed;
                    body.SubBodies.Add(textBody);
                    foreach (Attachment attachment in attachments)
                    {
                        Body attachBody = new Body()
                        {
                            ContentType = attachment.ContentType,
                            Name        = attachment.Name,
                            Data        = attachment.Data,
                        };
                        body.SubBodies.Add(attachBody);
                    }
                    attachments.Clear();
                    SendAttachmentListBox.ItemsSource = null;
                    SendAttachmentListBox.ItemsSource = attachments;
                }
                else
                {
                    body = textBody;
                }

                email.Head    = head;
                email.Content = body;

                smtp.SendEmail(email);          // 发送邮件
                smtp.Close();
            }
            else
            {
                // 显示错误
            }
        }