个人写的一个用Jmail发邮件到类,测试成功

本文介绍了一个使用Jmail库发送电子邮件的C#类实现。该类支持发送纯文本及HTML格式的邮件,并能附加文件作为附件。通过配置文件读取邮件账号及密码,实现了灵活的邮件发送功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

using System;
using System.IO;


//杨春
//2008-6-8

/// <summary>
/// Mail 的摘要说明
/// </summary>
public class MyMail
{
    string publicMail = System.Configuration.ConfigurationSettings.AppSettings["PublicMail"].ToString();
    string pubicmMailPassword = System.Configuration.ConfigurationSettings.AppSettings["PublicMailPasword"].ToString();
    string mailUserName = System.Configuration.ConfigurationSettings.AppSettings["MailUserName"].ToString();
    public MyMail()
 {
  //
  // TODO: 在此处添加构造函数逻辑
  //
 }


    /// <summary>
    /// 发邮件
    /// </summary>
    /// <param name="reciver">收件人</param>
    /// <param name="title">主题</param>
    /// <param name="content">内容</param>
    /// <param name="attpath">附件</param>
    /// <returns>是否成功</returns>
    public bool SendMail(string reciver, string title, string content, string attpath)
    {
        try
        {
            if ("" == attpath)
            {
                return SendMailByJmail(reciver, title, content);
            }
            else
            {
                if (File.Exists(attpath) == true)
                {
                    return SendMailByJmail(reciver, title, content, attpath);

                }
                else
                {
                    return SendMailByJmail(reciver, title, content);
                }
            }
        }
        catch (Exception ex)
        {
            return false;
            Console.Write(ex.Message);
        }

    }


    /// <summary>
    /// 发送无附件邮件
    /// </summary>
    /// <param name="reciver">收件人</param>
    /// <param name="title">主题</param>
    /// <param name="content">内容</param>
    /// <returns>是否成功</returns>
    ///
    private bool SendMailByJmail(string reciver,string title,string content)
    {
        myJmail.MessageClass JmailMessage = new myJmail.MessageClass();
        JmailMessage.Charset = "GB2312";
        JmailMessage.Encoding = "BASE64";
        JmailMessage.ContentType = "text/html";
        JmailMessage.ISOEncodeHeaders = false;
        JmailMessage.Priority = Convert.ToByte(1);
        JmailMessage.From = publicMail;
        JmailMessage.FromName = mailUserName;
        JmailMessage.Subject = title;
        JmailMessage.MailServerUserName = GetLoginNameByEmail(publicMail);
        JmailMessage.MailServerPassWord = pubicmMailPassword;
        JmailMessage.AddRecipient(reciver, "", "");
        JmailMessage.Body = content;

        if (JmailMessage.Send(GetSmtpSererByEmail(publicMail), false))
        {
            return true;
        }
        else
        {
            return false;
        }
    }

    /// <summary>
    /// 发送带附件的邮件
    /// </summary>
    /// <param name="reciver">收件人</param>
    /// <param name="title">主题</param>
    /// <param name="content">内容</param>
    /// <param name="attpath">附件路径</param>
    /// <returns>是否成功</returns>
    private bool SendMailByJmail(string reciver, string title, string content, string attpath)
    {
        myJmail.MessageClass JmailMessage = new myJmail.MessageClass();
        JmailMessage.Charset = "GB2312";
        JmailMessage.Encoding = "BASE64";
        JmailMessage.ContentType = "text/html";
        JmailMessage.ISOEncodeHeaders = false;
        JmailMessage.Priority = Convert.ToByte(1);
        JmailMessage.From = publicMail;
        JmailMessage.FromName = mailUserName;
        JmailMessage.Subject = title;
        JmailMessage.MailServerUserName = GetLoginNameByEmail(publicMail);
        JmailMessage.MailServerPassWord = pubicmMailPassword;
        JmailMessage.AddRecipient(reciver, "", "");
        JmailMessage.AddAttachment(attpath, true, attpath.Substring(attpath.LastIndexOf(".") + 1, 3));
        JmailMessage.Body = content;

        if (JmailMessage.Send(GetSmtpSererByEmail(publicMail), false))
        {
            return true;
        }
        else
        {
            return false;
        }
    }


    /// <summary>
    /// 根据Email地址得到登录名
    /// </summary>
    /// <param name="email">Email</param>
    /// <returns>登录名</returns>
    private string GetLoginNameByEmail(string email)
    {
        string loginName = email.Substring(0,email.IndexOf("@"));
        return loginName;
    }

    /// <summary>
    /// 根据Email得到Smtp服务器地址
    /// </summary>
    /// <param name="email">Email</param>
    /// <returns>stmp服务器地址</returns>
    private string GetSmtpSererByEmail(string email)
    {
        int length = email.Length;
        string smtpServer = "smtp." + email.Substring(email.IndexOf("@")+1, length - email.LastIndexOf("@")-1);
        return smtpServer;
    }


}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值