因为不太了解notes服务器的原理和设置,所以文的有点傻
说明一下,notes服务器在国外,公司内部发送都是不经过国外服务器的,是通过内部服务器可以实现收发邮件,如果向因特网上发送邮件,需要通过国外服务器。
现在我写了一个有邮件发送功能的软件,连接着内网,但是没有连接外网,现在想向notes邮箱发送邮件,目前还没有实现。求助各位大侠有知道怎么实现的没?
备注:连接到因特网可实现发送邮件到outlook或因特网邮箱或notes主要代码为:using System;
using System.Data;
using System.Data.Odbc;
using System.Collections;
using System.Net.Mail;
using System.Net;namespace AAA
{
/// <summary>
/// clsEmail 的摘要说明。
/// </summary>
    public class clsEmail
    {
        public static string mstrErrorMsg = "";        public static string mstrSmtpServer = "";        public static int miPort = 25;        public static string mstrMailFrom;        public static string mstrMailSender;        public  ArrayList marrFiles = new ArrayList();        public  MailMessage mail = new MailMessage();        public static NetworkCredential objNetworkCredential = new NetworkCredential();        /// <summary>
        /// 获取或设置收信人Email地址列表,以Arrlist设置或获取;
        /// </summary>
        public MailAddressCollection MailTo
        {
            get
            {
                return mail.To;
            }        }        /// <summary>
        /// 获取或设置抄送者Email地址列表,以Arrlist设置或获取;
        /// </summary>
        public MailAddressCollection CopyToWithSender
        {
            get
            {
                return mail.CC;
            }        }        /// <summary>
        /// 获取或设置暗送者Email地址列表,以Arrlist设置或获取
        /// </summary>
        public MailAddressCollection CopyToWithoutSender
        {
            get
            {
                return mail.Bcc;
            }        }        /// <summary>
        /// 获取或设置发送者电子邮件地址,用于对方回复时使用
        /// </summary>
        public string MailFrom
        {
            get
            {
                return mstrMailFrom;
            }
            set
            {
                if (value != null && value != "")
                {
                    mstrMailFrom = value;
                }
            }
        }        /// <summary>
        /// 获取或设置发送者名称,仅用于邮件显示
        /// </summary>
        public string Sender
        {
            get
            {
                return mstrMailSender;
            }
            set
            {
                if (value != null && value != "")
                {
                    mstrMailSender = value;
                }
            }
        }        /// <summary>
        /// 获取或设置发送邮件的帐号名称
        /// </summary>
        public string MailAccount
        {
            get
            {
                return objNetworkCredential.UserName;
            }
            set
            {
                if (value != null && value.IndexOf('@') != -1 && value.IndexOf('.') != -1)
                {
                    objNetworkCredential.UserName = value;
                }            }
        }        /// <summary>
        /// 获取或设置发送邮件帐号的密码
        /// </summary>
        public string MailAccountPwd
        {
            get
            {
                return objNetworkCredential.Password;
            }
            set
            {
                if (value != null)
                {
                    objNetworkCredential.Password = value;
                }
            }
        }        /// <summary>
        /// 获取或设置要发送邮件的正文
        /// </summary>
        public string MailBody
        {
            get
            {
                return mail.Body;
            }
            set
            {
                if (value != null)
                {
                    mail.Body = value;
                }
            }
        }
        /// <summary>
        /// 获取或设置要发送邮件的主题
        /// </summary>
        public string MailSubject
        {
            get
            {
                return mail.Subject;
            }
            set
            {
                if (value != null)
                {
                    mail.Subject = value;
                }
            }
        }        /// <summary>
        /// 获取或增加邮件的附件列表
        /// </summary>
        public ArrayList FileNames
        {
            get
            {
                return marrFiles;
            }        }        /// <summary>
        /// 获取或设置发送邮件的Smtp服务器
        /// </summary>
        public string SmtpServer
        {
            get
            {
                return mstrSmtpServer;
            }
            set
            {
                if (value != null && value.Trim() != "")
                {
                    mstrSmtpServer = value;
                }
            }
        }        /// <summary>
        /// 获取或设置Smtp服务器的通讯端口,默认值: 25
        /// </summary>
        public int SmtpPort
        {
            get
            {
                return miPort;
            }
            set
            {
                if (value > 0 && value < 65536)
                {
                    miPort = value;
                }
            }
        }        /// <summary>
        /// 获取错误信息
        /// </summary>
        public string ErrorMsg
        {
            get
            {
                return mstrErrorMsg;
            }        }        /// <summary>
        /// 设置完所有发送信息,就可以用这个方法进行发送了
        /// </summary>
        /// <returns>如果发送信息设置有误将返回false,详细的错误信息可以在属性ErrorMsg中获得;\n发送成功返回true;</returns>
        public bool SendEmail()
        {
            if (mstrSmtpServer == "")
            {
                mstrErrorMsg = "Smtp服务器设置不正确!";
                return false;            }
            if (objNetworkCredential.UserName == "")
            {
                mstrErrorMsg = "用于发送邮件的帐号设置不正确!";
                return false;
            }
            if (mstrMailFrom == "")
            {
                mstrErrorMsg = "发送者名称设置不正确!";
                return false;            }            SmtpClient objSmtpClient = new SmtpClient();            try
            {
                foreach (string strfileName in marrFiles)
                {
                    Attachment objAtt = new Attachment(strfileName);
                    mail.Attachments.Add(objAtt);
                }                System.Net.Mail.MailAddress objAddrFrom = new MailAddress(mstrMailFrom);
                System.Net.Mail.MailAddress objAddrSender;
                if (mstrMailSender != "")
                {
                    objAddrSender = new MailAddress(mstrMailSender);
                }
                else
                {
                    objAddrSender = new MailAddress(mstrMailFrom);
                }                mail.From = objAddrFrom;
                mail.Sender = objAddrSender;                objSmtpClient.Host = mstrSmtpServer;
                objSmtpClient.Credentials = objNetworkCredential;
                objSmtpClient.Port = miPort;                objSmtpClient.Send(mail);                mstrErrorMsg = "发送邮件成功!";
                return true;
            }
            catch (Exception ex)
            {
                System.Diagnostics.Debug.WriteLine(ex.Message + ex.StackTrace);
                mstrErrorMsg = "发送失败!原因:" + ex.Message;
                return false;
            }        }
    }
}

解决方案 »

  1.   

    如果是POP3的话,上网找段代码就行NOTE不知道是不是有自己的协议,你可以看看他们的SDK
      

  2.   

    谢谢楼上的,主要是不太懂notes的设置,也没怎么操作过,并且本人机器上也没有notes,研究都不好研究。做这个软件主要是实现发送邮件,不用pop3的~
      

  3.   

    去客户那里看了,不是邮件的问题,是他们那边的网络设置的问题。
    可以确认,任何邮件系统都是支持pop3和smtp 服务的,所以,只要是基于这些协议的,就可以进行正常运行。
    只要是可以发送成功,就说明代码这一块没问题,如果有问题,可以看看是其他的问题。