邮件发送(2)

2019-01-19 11:57

科信学院

BoxPassWord.Visible = !Regex.IsMatch(textBoxPassWord.Text, @\

}

//收件人地址改变时触发

private void textBoxReceive_TextChanged(object sender, EventArgs e) {

//要求满足电子邮件的格式

BoxReceive.Visible = !Regex.IsMatch(textBoxReceive.Text, @\

}

//主题改变时触发

private void textBoxSubject_TextChanged(object sender, EventArgs e) {

//不能为空

BoxSubject.Visible = !Regex.IsMatch(textBoxSubject.Text, @\ }

//发送内容改变时触发

private void textBoxBody_TextChanged(object sender, EventArgs e) {

//不能为空

BoxBody.Visible = !Regex.IsMatch(textBoxUserName.Text, @\ }

private void buttonSend_Click(object sender, EventArgs e) {

string invalidString = \

if (BoxUserName.Visible == true) invalidString += \用户名、\ if (BoxPassWord.Visible == true) invalidString += \口令、\ if (BoxReceive.Visible == true) invalidString += \收件人、\

6

科信学院

if (BoxSubject.Visible == true) invalidString += \主题、\ if (BoxBody.Visible == true) invalidString += \邮件内容、\ if (invalidString.Length > 0) {

MessageBox.Show(invalidString.TrimEnd('、') + \不能为空或者有不符合规定的内容\

} else {

//发件人和收件人的地址

String[] toes = textBoxReceive.Text.Trim().Split(';');

MailAddress from = new MailAddress(textBoxUserName.Text); MailAddress to = new MailAddress(toes[0]); MailMessage msg = new MailMessage(from, to); MailAddressCollection mac = msg.To; for (Int32 i = 1; i < toes.Length; i++) {

mac.Add(toes[i]); }

//邮件主题、内容

MailMessage message = new MailMessage(from, to); message.Subject = textBoxBody.Text;

message.SubjectEncoding = System.Text.Encoding.UTF8; message.Body = textBoxBody.Text;

message.BodyEncoding = System.Text.Encoding.UTF8; //添加附件

if (listBox1.Items.Count > 0) {

for (int i = 0; i < listBox1.Items.Count; i++)

7

科信学院

{

Attachment attachFile = new Attachment(listBox1.Items[i].ToString());

message.Attachments.Add(attachFile); } } 器

message);

try {

//大部分邮件服务器均加smtp.前缀

SmtpClient client = new SmtpClient(\ SendMail(client, from, textBoxPassWord.Text, to, message); MessageBox.Show(\邮件发送成功\}

catch (SmtpException err) {

//如果错误原因是没有找到服务器,则尝试不加smtp.前缀的服务 if (err.StatusCode == SmtpStatusCode.GeneralFailure) { try {

//有些邮件服务器不加smtp.前缀

SmtpClient client = new SmtpClient(from.Host); SendMail(client, from, textBoxPassWord.Text, to, MessageBox.Show(\邮件发送成功\ }

catch (SmtpException err1) {

MessageBox.Show(err1.Message, \发送失败\

8

科信学院

} } else {

MessageBox.Show(err.Message, \发送失败\ } }

} }

//根据指定的参数发送邮件

private void SendMail(SmtpClient client, MailAddress from, string password, MailAddress to, MailMessage message)

{

//不使用默认凭证,注意此句必须放在client.Credentials是上面 client.UseDefaultCredentials = false; //指定用户名、密码

client.Credentials = new NetworkCredential(from.Address, password); //邮件通过网络发送到服务器

client.DeliveryMethod = SmtpDeliveryMethod.Network; try {

client.Send(message); } catch {

throw; } finally {

9

科信学院

//及时释放占用的资源 message.Dispose(); }

}

private void buttonAdd_Click(object sender, EventArgs e) {

OpenFileDialog myOpenFileDialog = new OpenFileDialog(); myOpenFileDialog.CheckFileExists = true; //只接受有效的文件名

myOpenFileDialog.ValidateNames = true; //允许依次选择多个文件作为附件 myOpenFileDialog.Multiselect = true; myOpenFileDialog.ShowDialog();

if (myOpenFileDialog.FileName.Length > 0) {

listBox1.Items.AddRange(myOpenFileDialog.FileNames); }

} } } 2.4程序测试

2.4.1 发送邮件中的窗口,如下图3表示:

10


邮件发送(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:贾俊平统计学第四版课后答案

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: