public SMTP()
{
System.Configuration.Configuration config = System.Configuration.ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
MailSettingsSectionGroup mailSettings = NetSectionGroup.GetSectionGroup(config).MailSettings;
string mailFrom = mailSettings.Smtp.From;
string smtpServer = mailSettings.Smtp.Network.Host;
int smtpPort = mailSettings.Smtp.Network.Port;
string smtpUsername = mailSettings.Smtp.Network.UserName;
string password = mailSettings.Smtp.Network.Password; smtpMail = new SmtpClient(smtpServer, smtpPort);
smtpMail.Credentials = new NetworkCredential(smtpUsername, password);
this._mailFrom = mailFrom;
this._displayName = smtpUsername;
} public SMTP(string smtpServer, string userName, string password)
: this(null, smtpServer, userName, password)
{
} /**//// <summary>
/// 邮件发送类
/// </summary>
/// <param name="mailFrom">发件人地址</param>
/// <param name="smtpServer">SMTP 服务器</param>
/// <param name="userName">用户名</param>
/// <param name="password">密码</param>
public SMTP(string mailFrom, string smtpServer, string userName, string password)
: this(mailFrom, mailFrom, smtpServer, userName, password)
{ } /**//// <summary>
/// 邮件发送类
/// </summary>
/// <param name="mailFrom">发件人地址</param>
/// <param name="displayName">显示的名称</param>
/// <param name="smtpServer">SMTP 服务器</param>
/// <param name="userName">用户名</param>
/// <param name="password">密码</param>
public SMTP(string mailFrom, string displayName, string smtpServer, string userName, string password)
: this(mailFrom, displayName, smtpServer, 25, userName, password, false)
{
} public SMTP(string mailFrom, string displayName, string smtpServer, int smtpPort, string userName, string password, bool smtpSsl)
{
this._mailFrom = mailFrom;
this._displayName = displayName;
smtpMail = new SmtpClient(smtpServer, smtpPort);
smtpMail.Credentials = new NetworkCredential(userName, password);
smtpMail.EnableSsl = smtpSsl;
} public Boolean Send(string mailTo, string mailSubject, string mailBody, MailPriority priority, bool isBodyHtml)
{
string[] mailTos = new string[] { mailTo };
string[] attachments = null;
System.Text.Encoding bodyEncoding = System.Text.Encoding.Default;
return Send(mailTos, null, null, mailSubject, mailBody, attachments, priority, isBodyHtml, bodyEncoding);
} public Boolean Send(string mailTo, string mailSubject, string mailBody, string[] attachments, MailPriority priority, bool isBodyHtml, System.Text.Encoding bodyEncoding)
{
string[] mailTos = new string[] { mailTo };
return Send(mailTos, null, null, mailSubject, mailBody, attachments, priority, isBodyHtml, bodyEncoding);
} public Boolean Send(string[] mailTos, string[] mailCcs, string[] mailBccs, string mailSubject, string mailBody, string[] attachments, MailPriority priority, bool isBodyHtml, System.Text.Encoding bodyEncoding)
{
return Send(this._mailFrom, this._displayName, mailTos, mailCcs, mailBccs, mailSubject, mailBody, attachments, priority, isBodyHtml, bodyEncoding);
}--------------------------------------------------------------------------
问题:
public SMTP(string smtpServer, string userName, string password)
: this(null, smtpServer, userName, password)
{
}
1.这句中的 :this是个什么用法阿?2. 多次重载 Send()方法有什么意义呢?? 3. return Send(mailTos, null, null, mailSubject, mailBody, attachments, priority, isBodyHtml, bodyEncoding); 这个是什么用法?4. 为什么不在定义send()方法的时候一次性把参数加全呢??而要每次都要加几个参数进去呢?-------------------------------
刚学不久 能给解释详细就给我解释详细点吧 浪费您时间了,谢谢!!
{
System.Configuration.Configuration config = System.Configuration.ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
MailSettingsSectionGroup mailSettings = NetSectionGroup.GetSectionGroup(config).MailSettings;
string mailFrom = mailSettings.Smtp.From;
string smtpServer = mailSettings.Smtp.Network.Host;
int smtpPort = mailSettings.Smtp.Network.Port;
string smtpUsername = mailSettings.Smtp.Network.UserName;
string password = mailSettings.Smtp.Network.Password; smtpMail = new SmtpClient(smtpServer, smtpPort);
smtpMail.Credentials = new NetworkCredential(smtpUsername, password);
this._mailFrom = mailFrom;
this._displayName = smtpUsername;
} public SMTP(string smtpServer, string userName, string password)
: this(null, smtpServer, userName, password)
{
} /**//// <summary>
/// 邮件发送类
/// </summary>
/// <param name="mailFrom">发件人地址</param>
/// <param name="smtpServer">SMTP 服务器</param>
/// <param name="userName">用户名</param>
/// <param name="password">密码</param>
public SMTP(string mailFrom, string smtpServer, string userName, string password)
: this(mailFrom, mailFrom, smtpServer, userName, password)
{ } /**//// <summary>
/// 邮件发送类
/// </summary>
/// <param name="mailFrom">发件人地址</param>
/// <param name="displayName">显示的名称</param>
/// <param name="smtpServer">SMTP 服务器</param>
/// <param name="userName">用户名</param>
/// <param name="password">密码</param>
public SMTP(string mailFrom, string displayName, string smtpServer, string userName, string password)
: this(mailFrom, displayName, smtpServer, 25, userName, password, false)
{
} public SMTP(string mailFrom, string displayName, string smtpServer, int smtpPort, string userName, string password, bool smtpSsl)
{
this._mailFrom = mailFrom;
this._displayName = displayName;
smtpMail = new SmtpClient(smtpServer, smtpPort);
smtpMail.Credentials = new NetworkCredential(userName, password);
smtpMail.EnableSsl = smtpSsl;
} public Boolean Send(string mailTo, string mailSubject, string mailBody, MailPriority priority, bool isBodyHtml)
{
string[] mailTos = new string[] { mailTo };
string[] attachments = null;
System.Text.Encoding bodyEncoding = System.Text.Encoding.Default;
return Send(mailTos, null, null, mailSubject, mailBody, attachments, priority, isBodyHtml, bodyEncoding);
} public Boolean Send(string mailTo, string mailSubject, string mailBody, string[] attachments, MailPriority priority, bool isBodyHtml, System.Text.Encoding bodyEncoding)
{
string[] mailTos = new string[] { mailTo };
return Send(mailTos, null, null, mailSubject, mailBody, attachments, priority, isBodyHtml, bodyEncoding);
} public Boolean Send(string[] mailTos, string[] mailCcs, string[] mailBccs, string mailSubject, string mailBody, string[] attachments, MailPriority priority, bool isBodyHtml, System.Text.Encoding bodyEncoding)
{
return Send(this._mailFrom, this._displayName, mailTos, mailCcs, mailBccs, mailSubject, mailBody, attachments, priority, isBodyHtml, bodyEncoding);
}--------------------------------------------------------------------------
问题:
public SMTP(string smtpServer, string userName, string password)
: this(null, smtpServer, userName, password)
{
}
1.这句中的 :this是个什么用法阿?2. 多次重载 Send()方法有什么意义呢?? 3. return Send(mailTos, null, null, mailSubject, mailBody, attachments, priority, isBodyHtml, bodyEncoding); 这个是什么用法?4. 为什么不在定义send()方法的时候一次性把参数加全呢??而要每次都要加几个参数进去呢?-------------------------------
刚学不久 能给解释详细就给我解释详细点吧 浪费您时间了,谢谢!!
调用四个参数的构造函数this(null, smtpServer, userName, password)2. 多次重载 Send()方法有什么意义呢??
考虑到不同参数的情况。写好了方便宜用,写不好让人眼花头晕。3. return Send(mailTos, null, null, mailSubject, mailBody, attachments, priority, isBodyHtml, bodyEncoding); 这个是什么用法?
相当于:
bool bFlag = Send(mailTos, null, null, mailSubject, mailBody, attachments, priority, isBodyHtml, bodyEncoding);
return bFlag;4. 为什么不在定义send()方法的时候一次性把参数加全呢??而要每次都要加几个参数进去呢?
同2;
调用构造函数可以有两个关键字,一个是this,还有一个好像是base
2.send多次重载是因为可能有不一样的发送信件的要求,比如说有的人带附件,有的不带什么的
3.send函数有返回值的,返回值的类型是bool,return send()就是相当于bool b=send();
return b;
4.理由和2一样
base同
{
return Send(this._mailFrom, this._displayName, mailTos, mailCcs, mailBccs, mailSubject, mailBody, attachments, priority, isBodyHtml, bodyEncoding);
}这句中为什么在return Send()中 添加了几个
public Boolean Send(string[] mailTos, string[] mailCcs, string[] mailBccs, string mailSubject, string mailBody, string[] attachments, MailPriority priority, bool isBodyHtml, System.Text.Encoding bodyEncoding)
中并没有定义的 变量阿?
{
return Send(this._mailFrom, this._displayName, mailTos, mailCcs, mailBccs, mailSubject, mailBody, attachments, priority, isBodyHtml, bodyEncoding);
}这句中为什么在return Send()中 添加了几个
public Boolean Send(string[] mailTos, string[] mailCcs, string[] mailBccs, string mailSubject, string mailBody, string[] attachments, MailPriority priority, bool isBodyHtml, System.Text.Encoding bodyEncoding)
中并没有定义的 变量阿?
----------------
上面的几位朋友 给我解释下吧
public Boolean Send(string[] mailTos, string[] mailCcs, string[] mailBccs, string mailSubject, string mailBody, string[] attachments, MailPriority priority, bool isBodyHtml, System.Text.Encoding bodyEncoding)是一个函数,在这个函数里面又调用了另外的一个send函数
:)
Send(this._mailFrom, this._displayName, mailTos, mailCcs, mailBccs, mailSubject, mailBody, attachments, priority, isBodyHtml, bodyEncoding);
在 return Send()的时候 参数 写的顺序可以乱么??或者 可以添加一些参数么?