如何让notes服务器接收用C#编写的发送邮件

南哥1207 2008-10-07 06:06:18
因为不太了解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;
}

}
}
}
...全文
113 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
南哥1207 2008-11-10
  • 打赏
  • 举报
回复
去客户那里看了,不是邮件的问题,是他们那边的网络设置的问题。
可以确认,任何邮件系统都是支持pop3和smtp 服务的,所以,只要是基于这些协议的,就可以进行正常运行。
只要是可以发送成功,就说明代码这一块没问题,如果有问题,可以看看是其他的问题。
cpio 2008-10-08
  • 打赏
  • 举报
回复
如果是POP3的话,上网找段代码就行

NOTE不知道是不是有自己的协议,你可以看看他们的SDK
天涯海角 2008-10-08
  • 打赏
  • 举报
回复
没做过,帮顶了。
不过我认为你这个内外网设置肯定不一样.
说不定Notes还有特殊设定啊。
南哥1207 2008-10-08
  • 打赏
  • 举报
回复
谢谢楼上的,主要是不太懂notes的设置,也没怎么操作过,并且本人机器上也没有notes,研究都不好研究。做这个软件主要是实现发送邮件,不用pop3的~
南哥1207 2008-10-07
  • 打赏
  • 举报
回复
什么意思?
hangang7403 2008-10-07
  • 打赏
  • 举报
回复
SF

110,535

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧