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); }
/* 发送邮件 */ 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 { // 显示错误 } }