如何让notes服务器接收用C#编写的发送邮件
因为不太了解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;
}
}
}
}