如何让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;
}
}
}
}
说明一下,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;
}
}
}
}
...全文
相关推荐
C#中利用Lotus notes公共邮箱发送邮件的方法
首先,需要了解的是,Lotus Notes的公共邮箱可以被多个用户共享,用于发送邮件时,实际上是从Lotus Notes服务器的公共邮箱账户中发起邮件。
c# domino 发送邮件
本项目涉及的是利用C#与IBM Domino(Lotus Notes的一种服务器版本)进行交互,实现邮件发送功能。Domino服务器是企业级的协作平台,提供电子邮件、日程安排、文档管理等服务。
C#使用windows服务发送邮件
本文档详细介绍了如何使用C#语言编写Windows服务来实现邮件发送功能。作者首先通过Visual Studio 2015创建一个Windows服务项目,这是开发Windows服务的基础平台。在项目中
asp.net调用lotusnotes收发邮件实例
在`PTDomino.cs`中,我们可以预期会找到对Lotus Notes API的封装,这些API允许开发者与Notes服务器通信,执行诸如打开数据库、创建文档(邮件)、保存和发送邮件等操作。
C#学习笔记-C# Study Notes
单元测试:了解如何编写单元测试,确保代码质量,遵循TDD(测试驱动开发)原则。这份"C# Study Notes"涵盖了C#学习的各个方面,无论是初学者还是有一定经验的开发者,都能从中受益。


