11using MimeKit ;
22using MimeKit . Text ;
3+ using NETCore . MailKit . Infrastructure . Internal ;
34using NETCore . MailKit . Shared ;
4- using System ;
5- using System . Collections . Generic ;
65using System . Linq ;
76using System . Text ;
87using System . Threading . Tasks ;
@@ -25,9 +24,10 @@ public EmailService(IMailKitProvider provider)
2524 /// <param name="subject">subject</param>
2625 /// <param name="message">email message</param>
2726 /// <param name="isHtml">is set message as html</param>
28- public void Send ( string mailTo , string subject , string message , bool isHtml = false )
27+ /// <param name="sender">from</param>
28+ public void Send ( string mailTo , string subject , string message , bool isHtml = false , SenderInfo sender = null )
2929 {
30- SendEmail ( mailTo , null , null , subject , message , Encoding . UTF8 , isHtml ) ;
30+ SendEmail ( mailTo , null , null , subject , message , Encoding . UTF8 , isHtml , sender ) ;
3131 }
3232
3333 /// <summary>
@@ -38,9 +38,10 @@ public void Send(string mailTo, string subject, string message, bool isHtml = fa
3838 /// <param name="message">email message</param>
3939 /// <param name="encoding">email message encoding</param>
4040 /// <param name="isHtml">is set message as html</param>
41- public void Send ( string mailTo , string subject , string message , Encoding encoding , bool isHtml = false )
41+ /// <param name="sender">from</param>
42+ public void Send ( string mailTo , string subject , string message , Encoding encoding , bool isHtml = false , SenderInfo sender = null )
4243 {
43- SendEmail ( mailTo , null , null , subject , message , encoding , isHtml ) ;
44+ SendEmail ( mailTo , null , null , subject , message , encoding , isHtml , sender ) ;
4445 }
4546
4647 /// <summary>
@@ -52,9 +53,10 @@ public void Send(string mailTo, string subject, string message, Encoding encodin
5253 /// <param name="subject">subject</param>
5354 /// <param name="message">email message</param>
5455 /// <param name="isHtml">is set message as html</param>
55- public void Send ( string mailTo , string mailCc , string mailBcc , string subject , string message , bool isHtml = false )
56+ /// <param name="sender">from</param>
57+ public void Send ( string mailTo , string mailCc , string mailBcc , string subject , string message , bool isHtml = false , SenderInfo sender = null )
5658 {
57- SendEmail ( mailTo , mailCc , mailBcc , subject , message , Encoding . UTF8 , isHtml ) ;
59+ SendEmail ( mailTo , mailCc , mailBcc , subject , message , Encoding . UTF8 , isHtml , sender ) ;
5860 }
5961
6062 /// <summary>
@@ -67,9 +69,10 @@ public void Send(string mailTo, string mailCc, string mailBcc, string subject, s
6769 /// <param name="message">email message</param>
6870 /// <param name="encoding">email message encoding</param>
6971 /// <param name="isHtml">is set message as html</param>
70- public void Send ( string mailTo , string mailCc , string mailBcc , string subject , string message , Encoding encoding , bool isHtml = false )
72+ /// <param name="sender">from</param>
73+ public void Send ( string mailTo , string mailCc , string mailBcc , string subject , string message , Encoding encoding , bool isHtml = false , SenderInfo sender = null )
7174 {
72- SendEmail ( mailTo , mailCc , mailBcc , subject , message , encoding , isHtml ) ;
75+ SendEmail ( mailTo , mailCc , mailBcc , subject , message , encoding , isHtml , sender ) ;
7376 }
7477
7578
@@ -80,11 +83,12 @@ public void Send(string mailTo, string mailCc, string mailBcc, string subject, s
8083 /// <param name="subject">subject</param>
8184 /// <param name="message">email message</param>
8285 /// <param name="isHtml">is set message as html</param>
83- public Task SendAsync ( string mailTo , string subject , string message , bool isHtml = false )
86+ /// <param name="sender">from</param>
87+ public Task SendAsync ( string mailTo , string subject , string message , bool isHtml = false , SenderInfo sender = null )
8488 {
8589 return Task . Factory . StartNew ( ( ) =>
8690 {
87- SendEmail ( mailTo , null , null , subject , message , Encoding . UTF8 , isHtml ) ;
91+ SendEmail ( mailTo , null , null , subject , message , Encoding . UTF8 , isHtml , sender ) ;
8892 } ) ;
8993 }
9094
@@ -96,12 +100,12 @@ public Task SendAsync(string mailTo, string subject, string message, bool isHtml
96100 /// <param name="message">email message</param>
97101 /// <param name="encoding">email message encoding</param>
98102 /// <param name="isHtml">is set message as html</param>
99-
100- public Task SendAsync ( string mailTo , string subject , string message , Encoding encoding , bool isHtml = false )
103+ /// <param name="sender">from</param>
104+ public Task SendAsync ( string mailTo , string subject , string message , Encoding encoding , bool isHtml = false , SenderInfo sender = null )
101105 {
102106 return Task . Factory . StartNew ( ( ) =>
103107 {
104- SendEmail ( mailTo , null , null , subject , message , encoding , isHtml ) ;
108+ SendEmail ( mailTo , null , null , subject , message , encoding , isHtml , sender ) ;
105109 } ) ;
106110 }
107111
@@ -114,11 +118,12 @@ public Task SendAsync(string mailTo, string subject, string message, Encoding en
114118 /// <param name="subject">subject</param>
115119 /// <param name="message">email message</param>
116120 /// <param name="isHtml">is set message as html</param>
117- public Task SendAsync ( string mailTo , string mailCc , string mailBcc , string subject , string message , bool isHtml = false )
121+ /// <param name="sender">from</param>
122+ public Task SendAsync ( string mailTo , string mailCc , string mailBcc , string subject , string message , bool isHtml = false , SenderInfo sender = null )
118123 {
119124 return Task . Factory . StartNew ( ( ) =>
120125 {
121- SendEmail ( mailTo , mailCc , mailBcc , subject , message , Encoding . UTF8 , isHtml ) ;
126+ SendEmail ( mailTo , mailCc , mailBcc , subject , message , Encoding . UTF8 , isHtml , sender ) ;
122127 } ) ;
123128 }
124129
@@ -132,11 +137,12 @@ public Task SendAsync(string mailTo, string mailCc, string mailBcc, string subje
132137 /// <param name="message">email message</param>
133138 /// <param name="encoding">email message encoding</param>
134139 /// <param name="isHtml">is set message as html</param>
135- public Task SendAsync ( string mailTo , string mailCc , string mailBcc , string subject , string message , Encoding encoding , bool isHtml = false )
140+ /// <param name="sender">from</param>
141+ public Task SendAsync ( string mailTo , string mailCc , string mailBcc , string subject , string message , Encoding encoding , bool isHtml = false , SenderInfo sender = null )
136142 {
137143 return Task . Factory . StartNew ( ( ) =>
138144 {
139- SendEmail ( mailTo , mailCc , mailBcc , subject , message , encoding , isHtml ) ;
145+ SendEmail ( mailTo , mailCc , mailBcc , subject , message , encoding , isHtml , sender ) ;
140146 } ) ;
141147 }
142148
@@ -150,7 +156,8 @@ public Task SendAsync(string mailTo, string mailCc, string mailBcc, string subje
150156 /// <param name="message"></param>
151157 /// <param name="encoding"></param>
152158 /// <param name="isHtml"></param>
153- private void SendEmail ( string mailTo , string mailCc , string mailBcc , string subject , string message , Encoding encoding , bool isHtml )
159+ /// <param name="sender">from</param>
160+ private void SendEmail ( string mailTo , string mailCc , string mailBcc , string subject , string message , Encoding encoding , bool isHtml , SenderInfo sender = null )
154161 {
155162 var _to = new string [ 0 ] ;
156163 var _cc = new string [ 0 ] ;
@@ -168,7 +175,14 @@ private void SendEmail(string mailTo, string mailCc, string mailBcc, string subj
168175 var mimeMessage = new MimeMessage ( ) ;
169176
170177 //add mail from
171- mimeMessage . From . Add ( new MailboxAddress ( _MailKitProvider . Options . SenderName , _MailKitProvider . Options . SenderEmail ) ) ;
178+ if ( ! string . IsNullOrEmpty ( sender ? . SenderEmail ) && ! string . IsNullOrEmpty ( sender ? . SenderName ) )
179+ {
180+ mimeMessage . From . Add ( new MailboxAddress ( sender . SenderName , sender . SenderEmail ) ) ;
181+ }
182+ else
183+ {
184+ mimeMessage . From . Add ( new MailboxAddress ( _MailKitProvider . Options . SenderName , _MailKitProvider . Options . SenderEmail ) ) ;
185+ }
172186
173187 //add mail to
174188 foreach ( var to in _to )
@@ -196,7 +210,6 @@ private void SendEmail(string mailTo, string mailCc, string mailBcc, string subj
196210
197211 if ( isHtml )
198212 {
199-
200213 body = new TextPart ( TextFormat . Html ) ;
201214 }
202215 else
0 commit comments