void MailFrom(MailboxAddress mailbox, SmtpExtension extensions, CancellationToken cancellationToken) { var command = GetMailFromCommand(mailbox, extensions); if ((Capabilities & SmtpCapabilities.Pipelining) != 0) { QueueCommand(SmtpCommand.MailFrom, command); return; } ProcessMailFromResponse(SendCommand(command, cancellationToken), mailbox); }
static string GetMailFromCommand(MailboxAddress mailbox, SmtpExtension extensions) { if ((extensions & SmtpExtension.BinaryMime) != 0) { return(string.Format("MAIL FROM:<{0}> BODY=BINARYMIME", mailbox.Address)); } if ((extensions & SmtpExtension.EightBitMime) != 0) { return(string.Format("MAIL FROM:<{0}> BODY=8BITMIME", mailbox.Address)); } return(string.Format("MAIL FROM:<{0}>", mailbox.Address)); }
static string GetMailFromCommand(MailboxAddress mailbox, SmtpExtension extensions) { if ((extensions & SmtpExtension.BinaryMime) != 0) return string.Format ("MAIL FROM:<{0}> BODY=BINARYMIME", mailbox.Address); if ((extensions & SmtpExtension.EightBitMime) != 0) return string.Format ("MAIL FROM:<{0}> BODY=8BITMIME", mailbox.Address); return string.Format ("MAIL FROM:<{0}>", mailbox.Address); }
void MailFrom(MailboxAddress mailbox, SmtpExtension extensions, CancellationToken cancellationToken) { var command = GetMailFromCommand (mailbox, extensions); if ((capabilities & SmtpCapabilities.Pipelining) != 0) { QueueCommand (SmtpCommand.MailFrom, command); return; } ProcessMailFromResponse (SendCommand (command, cancellationToken), mailbox); }
void MailFrom (MimeMessage message, MailboxAddress mailbox, SmtpExtension extensions, CancellationToken cancellationToken) { var utf8 = (extensions & SmtpExtension.UTF8) != 0 ? " SMTPUTF8" : string.Empty; var command = string.Format ("MAIL FROM:<{0}>{1}", mailbox.Address, utf8); if ((extensions & SmtpExtension.BinaryMime) != 0) command += " BODY=BINARYMIME"; else if ((extensions & SmtpExtension.EightBitMime) != 0) command += " BODY=8BITMIME"; if ((capabilities & SmtpCapabilities.Dsn) != 0) { var envid = GetEnvelopeId (message); if (!string.IsNullOrEmpty (envid)) command += " ENVID=" + envid; // TODO: RET parameter? } if ((capabilities & SmtpCapabilities.Pipelining) != 0) { QueueCommand (SmtpCommand.MailFrom, command, cancellationToken); return; } ProcessMailFromResponse (SendCommand (command, cancellationToken), mailbox); }
protected override void VisitMimePart (MimePart entity) { switch (entity.ContentTransferEncoding) { case ContentEncoding.EightBit: // if the server supports the 8BITMIME extension, use it... if ((Capabilities & SmtpCapabilities.EightBitMime) != 0) { SmtpExtensions |= SmtpExtension.EightBitMime; } else { SmtpExtensions |= SmtpExtension.BinaryMime; } break; case ContentEncoding.Binary: SmtpExtensions |= SmtpExtension.BinaryMime; break; } }