C# 通过smtp服务器进行邮件发送 MailHelper

C# 通过smtp服务器进行邮件发送 MailHelper.cs

using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Net;
using System.IO;
using System.Text;
using System.Net.Mail;

/// <summary>
/// MailHelper 的摘要说明
/// </summary>
public class MailHelper
{
    public MailHelper()
    {
    }

    public string addres_mail = Common.GetConfig("mail", "MailConfig.xml");
    public string addres_smtp = Common.GetConfig("smtp", "MailConfig.xml");
    public string addres_mailpwd = Common.GetConfig("mailpwd", "MailConfig.xml");

    //发送邮件
    public static bool SendEmail(string userEmail, string subject, string content)
    {
        SendSms sms = new SendSms();
        bool bfg = false;
        try
        {
            WriteLog("C://Log//SMTP//", "发信邮箱:" + sms.addres_mail + " 发信密码:" + sms.addres_mailpwd + " 发信smtp:" + sms.addres_smtp + " Email:" + userEmail + "\r\n");
            MailMessage msg = new MailMessage();
            msg.IsBodyHtml = true;
            msg.From = new MailAddress(sms.addres_mail, "越界门户网站-密码找回", Encoding.GetEncoding("utf-8"));
            msg.To.Add(userEmail);
            msg.BodyEncoding = Encoding.GetEncoding("utf-8");
            msg.SubjectEncoding = Encoding.GetEncoding("utf-8");
            msg.Subject = subject;
            msg.Body = content;
            //// 添加附件
            string sfile = "附件地址";
            mail.Attachments.Add(new Attachment(sfile));

            SmtpClient mail = new SmtpClient();//实例
            mail.Host = sms.addres_smtp;     //发信主机
            mail.Port = 25;
            mail.UseDefaultCredentials = true;
            mail.Credentials = new NetworkCredential(sms.addres_mail, sms.addres_mailpwd);
            mail.Send(msg);
            bfg = true;
        }
        catch (Exception ex)
        {
            WriteLog("C://Log//Error//", "错误信息 Message:" + ex.Message + "  Source:" + ex.Source + " StackTrace:" + ex.StackTrace + "\r\n");
        }

        return bfg;
    }

    /// <summary>
    /// 写日志
    /// </summary>
    public static void WriteLog(string LogPath, string msg)
    {

        try
        {
            string toFileFoder = LogPath;
            string toFileFullPath = LogPath + " " +
                DateTime.Now.ToString("yyyyMMdd") + ".Log";
            DirectoryInfo di = new DirectoryInfo(toFileFoder);
            if (!di.Exists)
            {
                di.Create();
            }
            System.IO.StreamWriter sw = System.IO.File.AppendText(toFileFullPath);
            sw.WriteLine(msg);
            sw.Close();
        }
        catch
        { }
    }
}
时间: 2024-10-28 06:26:20

C# 通过smtp服务器进行邮件发送 MailHelper的相关文章

无须SMTP服务器中转直接发送电子邮件

前言 大家一定熟悉Foxmail中的"特快专递",它能直接将电子邮件发送到对方的邮件服务器中,而不需要经过SMTP服务器中转,这样做有什么好处?第一:发送速度比较快,不需要等SMTP服务器对邮件进行查毒.派发.验证:第二:你可以及时掌握邮件是否发送成功的信息.有时我们用Outlook发送一封邮件,到第二天对方都没收到,可我这边确实已经发送成功了,只好让对方多收几次,到了第三天SMTP服务器回信说"不好意思,你发往XXX的邮件因为XXX原因未能送达--",原来邮件被打

发送失败-SMTP中的邮件发送问题

问题描述 SMTP中的邮件发送问题 connect(ui.pb_send,SIGNAL(clicked()),this,SLOT(sendmail(Socket))); void SMTPclient::sendmail(QTcpSocket * socket) { qDebug("1111111111111111111111111111"); sendcommand(socket,"HELO:<" + ui.le_SMTP->text() + &quo

使用ESMTP(SMTP)进行邮件发送

smtp 使用ESMTP/SMTP进行邮件发送,遇到一个问题: 假如附件为图片gif文件,发送没有问题.但是接收后,无法显示图片.敬请高手指点!!!!! /* * Created on 2004-12-21 * * TODO To change the template for this generated file go to * Window - Preferences - Java - Code Style - Code Templates */ /** * @author Adminis

win03服务器,邮件发送不出去,本地测试是ok的?

问题描述 小弟网站需要发送邮件的功能,本地测试都是ok的,放到服务器上去就是发不出去,什么原因啊,望各位老大帮下忙 解决方案 解决方案二:看有没有防火墙或杀毒软件拦截了或者是封闭了端口解决方案三:这个吗不好说?报错了没有的话发上来

.NET开发邮件发送功能的全面教程(含邮件组件源码)

原文 http://www.cnblogs.com/heyuquan/p/net-batch-mail-send-async.html    今天,给大家分享的是如何在.NET平台中开发"邮件发送"功能.在网上搜的到的各种资料一般都介绍的比较简单,那今天我想比较细的整理介绍下: 1)         邮件基础理论知识 2)         邮件发送相关.NET类库 3)         介绍我开发的一个发送邮件的小组件(MailHelper) 4)         MailHelper

如何在 Linux 上使用 Gmail SMTP 服务器发送邮件通知

如何在 Linux 上使用 Gmail SMTP 服务器发送邮件通知 假定你想配置一个 Linux 应用,用于从你的服务器或桌面客户端发送邮件信息.邮件信息可能是邮件简报.状态更新(如 Cachet).监控警报(如 Monit).磁盘时间(如 RAID mdadm)等等.当你要建立自己的 邮件发送服务器 传递信息时 ,你可以替代使用一个免费的公共 SMTP 服务器,从而避免遭受维护之苦. 谷歌的 Gmail 服务就是最可靠的 免费 SMTP 服务器 之一.想要从应用中发送邮件通知,你仅需在应用中

邮件发送错误

问题描述 这是异常信息:System.Net.Mail.SmtpException:语法错误,无法识别命令.服务器响应为:Mailsenderisdifferentwithauthidentifier代码使用其他的smtp服务器发邮件时正常,但是使用新网的企业邮局就报这个错误.请问这是什么错?怎么解决? 解决方案 解决方案二:单步调试一下!!应该和你的邮件服务器有关系!!解决方案三:@yagebu1983"单步调试一下!!应该和你的邮件服务器有关系!!"你这句话等于没说解决方案四:Pa

php实现在站点里面添加邮件发送的功能_php实例

下面夏日博客来讲下如何在站点里面添加一个邮件发送的功能. 首先需要下载一个smtp 的 php 邮件发送类,代码如下: <?php class smtp { /* Public Variables */ public $smtp_port; public $time_out; public $host_name; public $log_file; public $relay_host; public $debug; public $auth; public $user; public $pas

深入Lumisoft.NET实现邮件发送功能的方法详解_实用技巧

在前面的一些文章中,有介绍过DotNet内置SMTP类的邮件发送功能,附件.嵌入图片的模式都有介绍,本文继续介绍Lumisoft.NET这个非常优秀的开源组件,用该组件来设计开发邮件工具,将变得更加方便,功能更加强大.网上很多文章基本介绍如何使用该组件来收取邮件较多,较少介绍使用该组件做邮件发送功能的.本文主要探寻使用该组件实现邮件的发送功能,邮件发送有两种方式,一种是不用发件人即可发送邮件,一种是使用发件人账户密码和SMTP服务器来实现邮件发送的,本文分别对这两种方式进行介绍. 组件下载地址: