I try to send test Email,but show a error message:The operation has timed out.
Use the following code of sending mail is normal
/// <summary>
/// Sends an email
/// </summary>
/// <param name="emailAccount">Email account to use</param>
/// <param name="subject">Subject</param>
/// <param name="body">Body</param>
/// <param name="fromAddress">From address</param>
/// <param name="fromName">From display name</param>
/// <param name="toAddress">To address</param>
/// <param name="toName">To display name</param>
/// <param name="replyTo">ReplyTo address</param>
/// <param name="replyToName">ReplyTo display name</param>
/// <param name="bcc">BCC addresses list</param>
/// <param name="cc">CC addresses list</param>
/// <param name="attachmentFilePath">Attachment file path</param>
/// <param name="attachmentFileName">Attachment file name. If specified, then this file name will be sent to a recipient. Otherwise, "AttachmentFilePath" name will be used.</param>
/// <param name="attachedDownloadId">Attachment download ID (another attachedment)</param>
/// <param name="headers">Headers</param>
public virtual void SendEmail(EmailAccount emailAccount, string subject, string body,
string fromAddress, string fromName, string toAddress, string toName,
string replyTo = null, string replyToName = null,
IEnumerable<string> bcc = null, IEnumerable<string> cc = null,
string attachmentFilePath = null, string attachmentFileName = null,
int attachedDownloadId = 0, IDictionary<string, string> headers = null)
{
var message = new MailMessage();
//from, to, reply to
message.From = fromAddress;
message.To=toAddress;
//BCC
if (bcc != null)
{
foreach (var address in bcc.Where(bccValue => !String.IsNullOrWhiteSpace(bccValue)))
{
message.Bcc=address.Trim();
}
}
//CC
if (cc != null)
{
foreach (var address in cc.Where(ccValue => !String.IsNullOrWhiteSpace(ccValue)))
{
message.Cc=address.Trim();
}
}
//content
message.Subject = subject;
message.Body = body;
message.BodyFormat = MailFormat.Html;
//headers
if (headers != null)
foreach (var header in headers)
{
message.Headers.Add(header.Key, header.Value);
}
//create the file attachment for this e-mail message
if (!String.IsNullOrEmpty(attachmentFilePath) &&
File.Exists(attachmentFilePath))
{
var attachment = new System.Net.Mail.Attachment(attachmentFilePath);
attachment.ContentDisposition.CreationDate = File.GetCreationTime(attachmentFilePath);
attachment.ContentDisposition.ModificationDate = File.GetLastWriteTime(attachmentFilePath);
attachment.ContentDisposition.ReadDate = File.GetLastAccessTime(attachmentFilePath);
if (!String.IsNullOrEmpty(attachmentFileName))
{
attachment.Name = attachmentFileName;
}
message.Attachments.Add(attachment);
}
//another attachment?
if (attachedDownloadId > 0)
{
var download = _downloadService.GetDownloadById(attachedDownloadId);
if (download != null)
{
//we do not support URLs as attachments
if (!download.UseDownloadUrl)
{
string fileName = !String.IsNullOrWhiteSpace(download.Filename) ? download.Filename : download.Id.ToString();
fileName += download.Extension;
var ms = new MemoryStream(download.DownloadBinary);
var attachment = new System.Net.Mail.Attachment(ms, fileName);
//string contentType = !String.IsNullOrWhiteSpace(download.ContentType) ? download.ContentType : "application/octet-stream";
//var attachment = new Attachment(ms, fileName, contentType);
attachment.ContentDisposition.CreationDate = DateTime.UtcNow;
attachment.ContentDisposition.ModificationDate = DateTime.UtcNow;
attachment.ContentDisposition.ReadDate = DateTime.UtcNow;
message.Attachments.Add(attachment);
}
}
}
message.Fields.Add("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate", "1"); //basic authentication
message.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendusername", "[email protected]"); //set your username here
message.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendpassword", "xxxx"); //set your password here
message.Fields.Add("http://schemas.microsoft.com/cdo/configuration/smtpserverport", 465);
message.Fields.Add("http://schemas.microsoft.com/cdo/configuration/smtpusessl", "true");
SmtpMail.SmtpServer = "smtp.exmail.qq.com";
SmtpMail.Send(message);
}