邮件的发送

最近做一个项目涉及到如何发送邮件,起初做的时候也是很迷茫,稍微到网上百度了一些资料,但发现网上有些代码并不能执行,于是自己对此作了些总结,下面将自己的经验和大家一起分享下。

·        主要代码如下:

public ActionResultAskForLeave(string subject,string fromAddress,stringtoAddress)

        {

             SmtpClientsmtp = new SmtpClient("smtp.gmail.com", 587);

             smtp.EnableSsl = true;

             MailAddressfromAdd = new MailAddress(fromAddress,"sender");

             MailAddresstoAdd = new MailAddress(toAddress,"receiver");

             MailMessagemessage = new MailMessage(fromAdd,toAdd);

             message.Subject = subject;

             message.Body = body;

             smtp.Credentials = new NetworkCredential(fromAddress,"发件人的密码");

             //message.Priority= MailPriority.High;

             //smtp.DeliveryMethod= SmtpDeliveryMethod.Network;

             //smtp.UseDefaultCredentials= true;

             //smtp.Timeout= 2000;

 

             try

             {

                   smtp.Send(message);

                  returnRedirectToAction("Successful","Home");

             }

             catch(Exception e)

             {

                  Console.WriteLine("Exception is:" + e.ToString());

             }

             returnView();

        }

由于我是通过MVC做的,可能在你写代码时需要做一些修改,方法中的三个参数subject,fromAddress,toAddress分别为邮件标题,发件箱,收件箱

·        值得说明的是SmtpClient("smtp.gmail.com",587);

这当中的587定义的是发件箱的端口号,我这里用的是gamil.com邮箱,如果你想用其它邮箱如163,你还得修改成163邮箱的端口号。

·        还有一点很重要             smtp.EnableSsl =true;

这一句代码看似很简短,但是你必须把它加上,这是决定你邮件是否能成功发送的关键之处。

它的意思是定义Ssl是否能访问SMTP邮箱的服务器,而且这句话必须写在发送邮件语句之前,否则的话就无法访问服务器,也就不能发送了,起初我自己被这个问题困扰了许久,反复阅读代码都没有找出原因,所以在这个问题上浪费了许多时间与精力,在这里我把它标记出来,希望读者不要像我这样走入误区。

至于其它几句代码意义就比较明了

MailAddress fromAdd = newMailAddress(fromAddress, "sender");//设置你的发件箱

同理

MailAddress toAdd = newMailAddress(toAddress, "receiver");//设置收件人邮箱

   smtp.Credentials = newNetworkCredential(fromAddress,"发件人的密码");//你邮箱的密码

上面我注释掉的一些语句,自己可以加上进行属性设置,当然不加也可以成功发送。

希望能对大家有点帮助哦

 

 

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值