/// <summary> /// 메일을 비동기적으로 전송하는 Task{bool}을 빌드합니다. /// </summary> /// <param name="client">smtp client</param> /// <param name="token">작업 취소용 Token</param> /// <param name="message">mail message</param> /// <param name="userToken"></param> /// <returns>비동기 작업을 수행하는 Task{bool}</returns> public static Task<bool> SendTask(this SmtpClient client, CancellationToken token, MailMessage message, object userToken = null) { message.ShouldNotBeNull("message"); if(IsDebugEnabled) log.Debug("비동기 방식으로 메일을 발송합니다... from=[{0}], recipients=[{1}], subject=[{2}], body=[{3}]", message.From, message.To.CollectionToString(), message.Subject, message.Body.EllipsisChar(80)); return SendTaskInternal(client, token, userToken, tcs => client.SendAsync(message, tcs)); }
/// <summary> /// Mail 보내기 /// </summary> /// <param name="host">SMTP Host address.</param> /// <param name="port">SMTP port</param> /// <param name="message">mail message</param> public static void SendMessage(string host, int port, MailMessage message) { host.ShouldNotBeWhiteSpace("host"); message.ShouldNotBeNull("message"); if(IsDebugEnabled) log.Debug("email을 전송합니다... host=[{0}], port=[{1}], message.Subject=[{2}]", host, port, message.Subject); var mailClient = new SmtpClient(host, port); mailClient.Send(message); }