本文整理汇总了C#中System.Net.Mail.MailMessage.BuildDeliveryStatusNotificationString方法的典型用法代码示例。如果您正苦于以下问题:C# MailMessage.BuildDeliveryStatusNotificationString方法的具体用法?C# MailMessage.BuildDeliveryStatusNotificationString怎么用?C# MailMessage.BuildDeliveryStatusNotificationString使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类System.Net.Mail.MailMessage
的用法示例。
在下文中一共展示了MailMessage.BuildDeliveryStatusNotificationString方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: Send
//.........这里部分代码省略.........
if (message.CC != null)
{
foreach (MailAddress address in message.CC)
{
recipients.Add(address);
}
}
if (recipients.Count == 0)
{
throw new InvalidOperationException(SR.SmtpRecipientRequired);
}
_transport.IdentityRequired = false; // everything completes on the same thread.
try
{
InCall = true;
_timedOut = false;
_timer = new Timer(new TimerCallback(TimeOutCallback), null, Timeout, Timeout);
bool allowUnicode = false;
string pickupDirectory = PickupDirectoryLocation;
MailWriter writer;
switch (DeliveryMethod)
{
case SmtpDeliveryMethod.PickupDirectoryFromIis:
throw new NotSupportedException(SR.SmtpGetIisPickupDirectoryNotSupported);
case SmtpDeliveryMethod.SpecifiedPickupDirectory:
if (EnableSsl)
{
throw new SmtpException(SR.SmtpPickupDirectoryDoesnotSupportSsl);
}
allowUnicode = IsUnicodeSupported(); // Determend by the DeliveryFormat paramiter
ValidateUnicodeRequirement(message, recipients, allowUnicode);
writer = GetFileMailWriter(pickupDirectory);
break;
case SmtpDeliveryMethod.Network:
default:
GetConnection();
// Detected durring GetConnection(), restrictable using the DeliveryFormat paramiter
allowUnicode = IsUnicodeSupported();
ValidateUnicodeRequirement(message, recipients, allowUnicode);
writer = _transport.SendMail(message.Sender ?? message.From, recipients,
message.BuildDeliveryStatusNotificationString(), allowUnicode, out recipientException);
break;
}
_message = message;
message.Send(writer, DeliveryMethod != SmtpDeliveryMethod.Network, allowUnicode);
writer.Close();
_transport.ReleaseConnection();
//throw if we couldn't send to any of the recipients
if (DeliveryMethod == SmtpDeliveryMethod.Network && recipientException != null)
{
throw recipientException;
}
}
catch (Exception e)
{
if (NetEventSource.Log.IsEnabled()) NetEventSource.Exception(NetEventSource.ComponentType.Web, this, "Send", e);
if (e is SmtpFailedRecipientException && !((SmtpFailedRecipientException)e).fatal)
{
throw;
}
Abort();
if (_timedOut)
{
throw new SmtpException(SR.net_timeout);
}
if (e is SecurityException ||
e is AuthenticationException ||
e is SmtpException)
{
throw;
}
throw new SmtpException(SR.SmtpSendMailFailure, e);
}
finally
{
InCall = false;
if (_timer != null)
{
_timer.Dispose();
}
}
}
finally
{
if (NetEventSource.Log.IsEnabled()) NetEventSource.Exit(NetEventSource.ComponentType.Web, this, "Send", null);
}
}
示例2: Send
public void Send(MailMessage message)
{
if (Logging.On)
{
Logging.Enter(Logging.Web, this, "Send", message);
}
if (this.disposed)
{
throw new ObjectDisposedException(base.GetType().FullName);
}
try
{
if (Logging.On)
{
Logging.PrintInfo(Logging.Web, this, "Send", "DeliveryMethod=" + this.DeliveryMethod.ToString());
}
if (Logging.On)
{
Logging.Associate(Logging.Web, this, message);
}
SmtpFailedRecipientException exception = null;
if (this.InCall)
{
throw new InvalidOperationException(SR.GetString("net_inasync"));
}
if (message == null)
{
throw new ArgumentNullException("message");
}
if (this.DeliveryMethod == SmtpDeliveryMethod.Network)
{
this.CheckHostAndPort();
}
MailAddressCollection recipients = new MailAddressCollection();
if (message.From == null)
{
throw new InvalidOperationException(SR.GetString("SmtpFromRequired"));
}
if (message.To != null)
{
foreach (MailAddress address in message.To)
{
recipients.Add(address);
}
}
if (message.Bcc != null)
{
foreach (MailAddress address2 in message.Bcc)
{
recipients.Add(address2);
}
}
if (message.CC != null)
{
foreach (MailAddress address3 in message.CC)
{
recipients.Add(address3);
}
}
if (recipients.Count == 0)
{
throw new InvalidOperationException(SR.GetString("SmtpRecipientRequired"));
}
this.transport.IdentityRequired = false;
try
{
this.InCall = true;
this.timedOut = false;
this.timer = new System.Threading.Timer(new TimerCallback(this.TimeOutCallback), null, this.Timeout, this.Timeout);
switch (this.DeliveryMethod)
{
case SmtpDeliveryMethod.SpecifiedPickupDirectory:
if (this.EnableSsl)
{
throw new SmtpException(SR.GetString("SmtpPickupDirectoryDoesnotSupportSsl"));
}
break;
case SmtpDeliveryMethod.PickupDirectoryFromIis:
if (this.EnableSsl)
{
throw new SmtpException(SR.GetString("SmtpPickupDirectoryDoesnotSupportSsl"));
}
goto Label_0235;
default:
goto Label_0244;
}
MailWriter fileMailWriter = this.GetFileMailWriter(this.PickupDirectoryLocation);
goto Label_0276;
Label_0235:
fileMailWriter = this.GetFileMailWriter(IisPickupDirectory.GetPickupDirectory());
goto Label_0276;
Label_0244:
this.GetConnection();
fileMailWriter = this.transport.SendMail((message.Sender != null) ? message.Sender : message.From, recipients, message.BuildDeliveryStatusNotificationString(), out exception);
Label_0276:
this.message = message;
message.Send(fileMailWriter, this.DeliveryMethod != SmtpDeliveryMethod.Network);
fileMailWriter.Close();
//.........这里部分代码省略.........
示例3: Send
public void Send(MailMessage message)
{
if (Logging.On)
Logging.Enter(Logging.Web, (object) this, "Send", (object) message);
if (this.disposed)
throw new ObjectDisposedException(this.GetType().FullName);
try
{
if (Logging.On)
Logging.PrintInfo(Logging.Web, (object) this, "Send", "DeliveryMethod=" + ((object) this.DeliveryMethod).ToString());
if (Logging.On)
Logging.Associate(Logging.Web, (object) this, (object) message);
SmtpFailedRecipientException exception = (SmtpFailedRecipientException) null;
if (this.InCall)
throw new InvalidOperationException(SR.GetString("net_inasync"));
if (message == null)
throw new ArgumentNullException("message");
if (this.DeliveryMethod == SmtpDeliveryMethod.Network)
this.CheckHostAndPort();
MailAddressCollection recipients = new MailAddressCollection();
if (message.From == null)
throw new InvalidOperationException(SR.GetString("SmtpFromRequired"));
if (message.To != null)
{
foreach (MailAddress mailAddress in (Collection<MailAddress>) message.To)
((Collection<MailAddress>) recipients).Add(mailAddress);
}
if (message.Bcc != null)
{
foreach (MailAddress mailAddress in (Collection<MailAddress>) message.Bcc)
((Collection<MailAddress>) recipients).Add(mailAddress);
}
if (message.CC != null)
{
foreach (MailAddress mailAddress in (Collection<MailAddress>) message.CC)
((Collection<MailAddress>) recipients).Add(mailAddress);
}
if (recipients.Count == 0)
throw new InvalidOperationException(SR.GetString("SmtpRecipientRequired"));
this.transport.IdentityRequired = false;
try
{
this.InCall = true;
this.timedOut = false;
this.timer = new System.Threading.Timer(new TimerCallback(this.TimeOutCallback), (object) null, this.Timeout, this.Timeout);
string pickupDirectory = this.PickupDirectoryLocation;
bool allowUnicode;
MailWriter mailWriter;
switch (this.DeliveryMethod)
{
case SmtpDeliveryMethod.SpecifiedPickupDirectory:
if (this.EnableSsl)
throw new SmtpException(SR.GetString("SmtpPickupDirectoryDoesnotSupportSsl"));
allowUnicode = this.IsUnicodeSupported();
this.ValidateUnicodeRequirement(message, recipients, allowUnicode);
mailWriter = this.GetFileMailWriter(pickupDirectory);
break;
case SmtpDeliveryMethod.PickupDirectoryFromIis:
pickupDirectory = IisPickupDirectory.GetPickupDirectory();
goto case 1;
default:
this.GetConnection();
allowUnicode = this.IsUnicodeSupported();
this.ValidateUnicodeRequirement(message, recipients, allowUnicode);
mailWriter = this.transport.SendMail(message.Sender ?? message.From, recipients, message.BuildDeliveryStatusNotificationString(), allowUnicode, out exception);
break;
}
this.message = message;
message.Send((BaseWriter) mailWriter, this.DeliveryMethod != SmtpDeliveryMethod.Network, allowUnicode);
mailWriter.Close();
this.transport.ReleaseConnection();
if (this.DeliveryMethod == SmtpDeliveryMethod.Network && exception != null)
throw exception;
}
catch (Exception ex)
{
if (Logging.On)
Logging.Exception(Logging.Web, (object) this, "Send", ex);
if (ex is SmtpFailedRecipientException && !((SmtpFailedRecipientException) ex).fatal)
{
throw;
}
else
{
this.Abort();
if (this.timedOut)
throw new SmtpException(SR.GetString("net_timeout"));
if (!(ex is SecurityException) && !(ex is AuthenticationException) && !(ex is SmtpException))
throw new SmtpException(SR.GetString("SmtpSendMailFailure"), ex);
throw;
}
}
finally
{
this.InCall = false;
if (this.timer != null)
this.timer.Dispose();
}
}
finally
//.........这里部分代码省略.........