C#'ta SMTP İstemcisi Kullanarak E-posta Gönderme, Mesaj İletme ve Mail Birleştirme Yapma
E-posta Gönderme
SmtpClient Sınıfı ile E-posta Gönder
Bu SmtpClient sınıfı, uygulamaların Simple Mail Transfer Protocol (SMTP) üzerinden e-posta göndermesini sağlar.
En önemli özelliklerinden biri şudur ki toplu mesaj göndermeyi.
Ayrıca tam olarak destekler senkron ve asenkron programlama modelleri. İşlem tamamlanana kadar ana iş parçacığını engelleyen bir e-posta iletmek için geliştiriciler senkron Gönder metodlar. Alternatif olarak, e-posta gönderilirken ana iş parçacığının çalışmaya devam etmesine izin vermek için geliştiriciler şu yöntemi kullanabilir: SendAsync metod.
Ayrıca, SmtpClient mesaj göndermeyi destekler Transport Neutral Encapsulation Format (TNEF).
E-postaları Senkron Gönder
Bir e-posta mesajı, aşağıdaki yöntemi kullanarak senkron olarak gönderilebilir: Gönder metodu SmtpClient sınıfı. Belirtilen e-posta mesajını teslim için bir SMTP sunucusu üzerinden gönderir. Bir e-posta mesajını senkron olarak göndermek için aşağıdaki adımları izleyin:
- Bir örnek oluştur MailMessage class ve özelliklerini ayarlayın.
- Bir örnek oluştur SmtpClient class ve Host, port, kullanıcı adı ve Şifreyi belirtin.
- Mesajı kullanarak gönderin Gönder metodu SmtpClient class ve geçirin MailMessage örnek.
Aşağıdaki C# kod parçacığı, outlook e-postalarını senkron olarak nasıl göndereceğinizi gösterir.
// For complete examples and data files, please go to https://github.com/aspose-email/Aspose.Email-for-.NET
// Declare msg as MailMessage instance
MailMessage msg = new MailMessage();
// Create an instance of SmtpClient class
SmtpClient client = new SmtpClient();
// Specify your mailing host server, Username, Password, Port # and Security option
client.Host = "mail.server.com";
client.Username = "username";
client.Password = "password";
client.Port = 587;
client.SecurityOptions = SecurityOptions.SSLExplicit;
try
{
// Client.Send will send this message
client.Send(msg);
Console.WriteLine("Message sent");
}
catch (Exception ex)
{
Trace.WriteLine(ex.ToString());
}
E-postaları Asenkron Gönder
Bazen, e-postayı arka planda gönderilirken programın diğer işlemleri yürütmeye devam etmesini sağlamak için asenkron göndermek isteyebilirsiniz. .NET Framework 4.5’ten itibaren, şu şekilde uygulanmış asenkron metodları kullanabilirsiniz: TAP model. Aşağıdaki C# kod parçacığı, görev tabanlı asenkron desen metodları kullanarak Outlook e-posta mesajlarını nasıl göndereceğinizi gösterir:
-
SendAsync Belirtilen mesajları gönderir.
-
IAsyncSmtpClient - Uygulamaların Simple Mail Transfer Protocol (SMTP) kullanarak mesaj göndermesini sağlar.
-
SmtpClient.CreateAsync - Aspose.Email.Clients.Smtp.SmtpClient sınıfının yeni bir örneğini oluşturur
-
SmtpSend - Aspose.Email.Clients.Smtp.IAsyncSmtpClient.SendAsync(Aspose.Email.Clients.Smtp.Models.SmtpSend) metod parametre kümesi.
-
SmtpForward - Aspose.Email.Clients.Smtp.IAsyncSmtpClient.ForwardAsync(Aspose.Email.Clients.Smtp.Models.SmtpForward) parametreleri.
// Authenticate the client to obtain necessary permissions
static readonly string tenantId = "YOU_TENANT_ID";
static readonly string clientId = "YOU_CLIENT_ID";
static readonly string redirectUri = "http://localhost";
static readonly string username = "username";
static readonly string[] scopes = { "https://outlook.office.com/SMTP.Send" };
// Use the SmtpAsync method for asynchronous operations
static async Task Main(string[] args)
{
await SmtpAsync();
Console.ReadLine();
}
static async Task SmtpAsync()
{
// Create token provider and get access token
var tokenProvider = new TokenProvider(clientId, tenantId, redirectUri, scopes);
var client = SmtpClient.CreateAsync("outlook.office365.com", username, tokenProvider, 587).GetAwaiter().GetResult();
// Create a message to send
var eml = new MailMessage("from@domain.com", "to@domain.com", "test subj async", "test body async");
// send message
var sendOptions = SmtpSend.Create();
sendOptions.AddMessage(eml);
await client.SendAsync(sendOptions);
Console.WriteLine("message was sent");
// forward message
var fwdOptions = SmtpForward.Create();
fwdOptions.SetMessage(eml);
fwdOptions.AddRecipient("rec@domain.com");
await client.ForwardAsync(fwdOptions);
Console.WriteLine("message was forwarded");
}
// Token provider implementation
public class TokenProvider : IAsyncTokenProvider
{
private readonly PublicClientApplicationOptions _pcaOptions;
private readonly string[] _scopes;
public TokenProvider(string clientId, string tenantId, string redirectUri, string[] scopes)
{
_pcaOptions = new PublicClientApplicationOptions
{
ClientId = clientId,
TenantId = tenantId,
RedirectUri = redirectUri
};
_scopes = scopes;
}
public async Task<OAuthToken> GetAccessTokenAsync(bool ignoreExistingToken = false, CancellationToken cancellationToken = default)
{
var pca = PublicClientApplicationBuilder
.CreateWithApplicationOptions(_pcaOptions).Build();
try
{
var result = await pca.AcquireTokenInteractive(_scopes)
.WithUseEmbeddedWebView(false)
.ExecuteAsync(cancellationToken);
return new OAuthToken(result.AccessToken);
}
catch (MsalException ex)
{
Console.WriteLine($"Error acquiring access token: {ex}");
}
catch (Exception ex)
{
Console.WriteLine($"Error: {ex}");
}
return null;
}
public void Dispose()
{
}
}
Diskten Mesaj Gönder
EML dosyaları bir başlık, mesaj gövdesi ve ekler içerir. Aspose.Email geliştiricilerin EML dosyalarıyla farklı şekillerde çalışmasına olanak tanır. Bu bölüm, EML dosyalarını diskten yükleyip SMTP ile e-posta olarak göndermeyi gösterir. .eml dosyalarını diskten veya akıştan … içine yükleyebilirsiniz MailMessage sınıfı ve e-posta mesajını şu ile gönderin: SmtpClient sınıf. MailMessage sınıfı, yeni e-posta mesajları oluşturmak, diskten veya akıştan e-posta mesaj dosyalarını yüklemek ve mesajları kaydetmek için temel sınıftır. Aşağıdaki C# kod parçacığı, diskteki saklanmış mesajların nasıl gönderileceğini gösterir.
// For complete examples and data files, please go to https://github.com/aspose-email/Aspose.Email-for-.NET
// Load an EML file in MailMessage class
var message = MailMessage.Load(dataDir + "test.eml");
// Send this message using SmtpClient
var client = new SmtpClient("host", "username", "password");
try
{
client.Send(message);
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
Düz Metin Olarak E-posta Gönder
Bu Gövde özellik, sınıfın bir özelliği MailMessage sınıfı, mesaj gövdesinin düz metin içeriğini belirtmek için kullanılır. Düz metin bir e-posta mesajı göndermek için şu adımları izleyin:
- Şunun bir örneğini oluştur MailMessage sınıf.
- Gönderici ve alıcı e-posta adreslerini şurada belirtin: MailMessage örnek.
- Şunu belirtin: Gövde içerik, düz metin mesajı için kullanılır.
- Şunun bir örneğini oluştur SmtpClient sınıfı ve e-postayı gönder.
Aşağıdaki kod parçacığı, düz metin bir e-posta göndermeyi gösterir.
// For complete examples and data files, please go to https://github.com/aspose-email/Aspose.Email-for-.NET
//Create an instance of the MailMessage class
var message = new MailMessage();
// Set From field, To field and Plain text body
message.From = "sender@sender.com";
message.To.Add("receiver@receiver.com");
message.Body = "This is Plain Text Body";
// Create an instance of the SmtpClient class
var client = new SmtpClient();
// And Specify your mailing host server, Username, Password and Port
client.Host = "smtp.server.com";
client.Username = "Username";
client.Password = "Password";
client.Port = 25;
try
{
//Client.Send will send this message
client.Send(message);
Console.WriteLine("Message sent");
}
catch (Exception ex)
{
System.Diagnostics.Trace.WriteLine(ex.ToString());
}
HTML Gövdesiyle E-posta Gönder
Aşağıdaki program örnekleri, basit bir HTML e-posta mesajı nasıl gönderebileceğinizi gösterir. HtmlBody, sınıfın bir özelliği MailMessage sınıfı, mesaj gövdesinin HTML içeriğini belirtmek için kullanılır. Basit bir HTML e-posta göndermek için şu adımları izleyin:
- Şunun bir örneğini oluştur MailMessage sınıf.
- Gönderici ve alıcı e-posta adresini şurada belirtin: MailMessage örnek.
- Şunu belirtin: HtmlBody içerik.
- Şunun bir örneğini oluştur SmtpClient sınıfı ve e-postayı şu ile gönderin: Gönder metod.
Bu makale amacıyla, e-postanın HTML içeriği basittir:
This is the HTML body Çoğu HTML e-posta daha karmaşık olacaktır. Aşağıdaki kod parçacığı, HTML gövdesi ile bir e-posta nasıl gönderileceğini gösterir.// For complete examples and data files, please go to https://github.com/aspose-email/Aspose.Email-for-.NET
public static void Run()
{
// Declare msg as MailMessage instance
var msg = new MailMessage();
// Use MailMessage properties like specify sender, recipient, message and HtmlBody
msg.From = "newcustomeronnet@gmail.com";
msg.To = "asposetest123@gmail.com";
msg.Subject = "Test subject";
msg.HtmlBody = "<html><body>This is the HTML body</body></html>";
var client = GetSmtpClient();
try
{
// Client will send this message
client.Send(msg);
Console.WriteLine("Message sent");
}
catch (Exception ex)
{
Trace.WriteLine(ex.ToString());
}
Console.WriteLine(Environment.NewLine + "Email sent with HTML body.");
}
private static SmtpClient GetSmtpClient()
{
var client = new SmtpClient("smtp.gmail.com", 587, "your.email@gmail.com", "your.password");
client.SecurityOptions = SecurityOptions.Auto;
return client;
}
Alternatif Metinli HTML E-postalar Gönder
Kullan AlternateView farklı biçimlerde e-posta mesajının kopyalarını belirtmek için sınıf. Örneğin, bir mesajı HTML olarak gönderiyorsanız, HTML içeriğini görüntüleyemeyen alıcılar için düz metin bir sürüm de sağlayabilirsiniz. Ya da bir bülten gönderiyorsanız, düz metin sürümünü tercih eden alıcılar için metnin düz metin kopyasını sunmak isteyebilirsiniz. Alternatif metinli bir e-posta göndermek için şu adımları izleyin:
- Şunun bir örneğini oluştur MailMessage sınıf.
- Gönderici ve alıcı e-posta adreslerini şu içinde belirtin: MailMessage örnek.
- Şunun bir örneğini oluştur AlternateView sınıf.
Bu, dizede belirtilen içeriği kullanarak bir e-posta mesajına alternatif bir görünüm oluşturur.
- Şunun bir örneğini ekleyin: AlternateView sınıfı şuna MailMessage nesne.
- Şunun bir örneğini oluştur SmtpClient sınıfı ve e-postayı şu ile gönderin: Gönder metod.
Aşağıdaki kod parçacığı, alternatif metinli bir e-posta göndermeyi gösterir.
// For complete examples and data files, please go to https://github.com/aspose-email/Aspose.Email-for-.NET
// Declare message as MailMessage instance
var message = new MailMessage();
// Creates AlternateView to view an email message using the content specified in the //string
var alternate = AlternateView.CreateAlternateViewFromString("Alternate Text");
// Adding alternate text
message.AlternateViews.Add(alternate);
Toplu E-posta Gönder
Şu aracılığıyla bir toplu e-posta gönderebiliriz: SmtpClient sınıfı Gönder kabul eden metod aşırı yüklemesi MailMessageCollection:
- Bir örnek oluştur SmtpClient sınıf.
- Şunu belirtin: SmtpClient sınıf özelliklerinde.
- Şunun bir örneğini oluştur MailMessage sınıf.
- Gönderici, alıcı, e-posta konusu ve mesajı, şu sınıfın örneğinde belirtin: MailMessage sınıf.
- Farklı bir kişiye e-posta göndermek isterseniz yukarıdaki iki adımı tekrar edin.
- Bir örnek oluştur MailMessageCollection sınıf.
- Şunun bir örneğini ekleyin: MailMessage sınıfının nesnesinde MailMessageCollection sınıf.
- Şimdi e-postanızı şu ile gönderin: SmtpClient sınıf Gönder yöntemi, şu sınıfın örneğini geçirerek MailMessageCollection içindeki sınıf.
Aşağıdaki kod parçacığı, toplu e-posta göndermeyi gösterir.
// For complete examples and data files, please go to https://github.com/aspose-email/Aspose.Email-for-.NET
// Create SmtpClient as client and specify server, port, user name and password
var client = new SmtpClient("mail.server.com", 25, "Username", "Password");
// Create instances of MailMessage class and Specify To, From, Subject and Message
var message1 = new MailMessage("msg1@from.com", "msg1@to.com", "Subject1", "message1, how are you?");
var message2 = new MailMessage("msg1@from.com", "msg2@to.com", "Subject2", "message2, how are you?");
var message3 = new MailMessage("msg1@from.com", "msg3@to.com", "Subject3", "message3, how are you?");
// Create an instance of MailMessageCollection class
var manyMsg = new MailMessageCollection();
manyMsg.Add(message1);
manyMsg.Add(message2);
manyMsg.Add(message3);
try
{
// Send Messages using Send method
client.Send(manyMsg);
Console.WriteLine("Message sent");
}
catch (Exception ex)
{
Trace.WriteLine(ex.ToString());
}
Toplu E-posta Başarısını İzle
Toplu mesaj gönderdiğinizde, başarılı gönderilen mesaj sayısı hakkında bilgi alabilir ve hatta bu mesajların bir listesini elde edebilirsiniz. SucceededSending olay bu amaç için kullanılır.
Kod örneği:
using (var client = new SmtpClient(host, SecurityOptions.Auto))
{
int messageCount = 0;
client.SucceededSending += (sender, eventArgs) =>
{
Console.WriteLine("The message '{0}' was successfully sent.", eventArgs.Message.Subject);
messageCount++;
};
client.Send(messages);
Console.WriteLine("{0} messages were successfully sent.", messageCount);
}
MultiConnection ile E-posta Gönder
Bu UseMultiConnection özelliği, yoğun işlemler için birden çok bağlantı oluşturmak amacıyla kullanılabilir. Çoklu bağlantı modunda kullanılacak bağlantı sayısını şu şekilde ayarlayabilirsiniz: SmtpClient.ConnectionsQuantity. Aşağıdaki kod parçacığı, birden fazla mesaj gönderimi için çoklu bağlantı modunun kullanımını göstermektedir.
var smtpClient = new SmtpClient();
smtpClient.Host = "<HOST>";
smtpClient.Username = "<USERNAME>";
smtpClient.Password = "<PASSWORD>";
smtpClient.Port = 587;
smtpClient.SupportedEncryption = EncryptionProtocols.Tls;
smtpClient.SecurityOptions = SecurityOptions.SSLExplicit;
var messages = new List<MailMessage>();
for (int i = 0; i < 20; i++)
{
MailMessage message = new MailMessage(
"<EMAIL ADDRESS>",
"<EMAIL ADDRESS>",
"Test Message - " + Guid.NewGuid().ToString(),
"SMTP Send Messages with MultiConnection");
messages.Add(message);
}
smtpClient.ConnectionsQuantity = 5;
smtpClient.UseMultiConnection = MultiConnectionMode.Enable;
smtpClient.Send(messages);
Mesajları TNEF Olarak Gönder
TNEF e-postaları, standart API ile gönderildiğinde kaybedilebilecek özel bir biçimlendirmeye sahiptir. SmtpClient sınıf UseTnef özellik, e-postayı TNEF olarak göndermek için ayarlanabilir. Aşağıdaki kod parçacığı, bir mesajı TNEF olarak nasıl göndereceğinizi gösterir.
var emlFileName = RunExamples.GetDataDir_Email() + "Message.eml"; // A TNEF Email
// Load from eml
var eml1 = MailMessage.Load(emlFileName, new EmlLoadOptions());
eml1.From = "somename@gmail.com";
eml1.To.Clear();
eml1.To.Add(new MailAddress("first.last@test.com"));
eml1.Subject = "With PreserveTnef flag during loading";
eml1.Date = DateTime.Now;
var client = new SmtpClient("smtp.gmail.com", 587, "somename", "password");
client.SecurityOptions = SecurityOptions.Auto;
client.UseTnef = true; // Use this flag to send as TNEF
client.Send(eml1);
Toplantı İstekleri Gönder
Aspose.Email, geliştiricilerin e-postalarınıza takvim işlevleri eklemesine olanak tanır.
E-posta ile İstek Gönder
E-posta ile toplantı isteği göndermek için aşağıdaki adımları izleyin:
- Şunun bir örneğini oluştur MailMessage sınıf.
- Gönderici ve alıcı adreslerini, şunun bir örneğini kullanarak belirtin: MailMessage sınıf.
- Şu sınıfın bir örneğini başlatın: Appointment class ve değerlerini geçirin.
- Özet ve açıklamayı şurada belirtin: Calendar örnek.
- Şunu ekleyin Calendar için MailMessage örnek ve ona şunu geçirin Appointment örnek.
|E-posta ile gönderilen iCalendar toplantı isteği| | :- | |
| Aşağıdaki kod parçacığı, e-posta ile istek göndermeyi gösterir.
// Create an instance of the MailMessage class
var msg = new MailMessage();
// Set the sender, recipient, who will receive the meeting request. Basically, the recipient is the same as the meeting attendees
msg.From = "newcustomeronnet@gmail.com";
msg.To = "person1@domain.com, person2@domain.com, person3@domain.com, asposetest123@gmail.com";
// Create Appointment instance
var app = new Appointment("Room 112", new DateTime(2015, 7, 17, 13, 0, 0), new DateTime(2015, 7, 17, 14, 0, 0), msg.From, msg.To);
app.Summary = "Release Meetting";
app.Description = "Discuss for the next release";
// Add appointment to the message and Create an instance of SmtpClient class
msg.AddAlternateView(app.RequestApointment());
var client = GetSmtpClient();
try
{
// Client.Send will send this message
client.Send(msg);
Console.WriteLine("Message sent");
}
catch (Exception ex)
{
Trace.WriteLine(ex.ToString());
}
İletileri İlet
SMTP İstemcisiyle İletileri İlet
E-posta iletmek yaygın bir uygulamadır. Alınan bir e-posta belirli alıcılara iletilebilir. Yönlendir metod, alınan veya kaydedilen bir e-postayı istenen alıcılara iletmek için kullanılabilir. Aşağıdaki kod parçacığı, SMTP İstemcisi kullanarak bir e-postayı nasıl ileteceğinizi gösterir.
//Create an instance of SmtpClient class
var client = new SmtpClient();
// Specify your mailing host server, Username, Password, Port and SecurityOptions
client.Host = "mail.server.com";
client.Username = "username";
client.Password = "password";
client.Port = 587;
client.SecurityOptions = SecurityOptions.SSLExplicit;
var message = MailMessage.Load(dataDir + "Message.eml");
client.Forward("Recipient1@domain.com", "Recipient2@domain.com", message);
MailMessage Olmadan İletileri İlet
API ayrıca EML mesajlarını önceden yüklemeden yönlendirmeyi de destekler MailMessage. Bu, sistem belleği açısından sınırlı kaynakların olduğu durumlarda faydalıdır.
using (var client = new SmtpClient(host, smtpPort, username, password, SecurityOptions.Auto))
{
using (var fs = File.OpenRead(@"test.eml"))
{
client.Forward(sender, recipients, fs);
}
}
MailMessage Olmadan Asenkron İletileri İlet
using (var client = new SmtpClient(host, smtpPort, username, password))
{
using (var fs = File.OpenRead(@"test.eml"))
{
await client.ForwardAsync(sender, recipients, fs);
}
}
Mail Birleştirme
E-postaları Nasıl Birleştirebilirsiniz
Mail merge, benzer e-posta mesajlarından bir toplu oluşturup göndermenize yardımcı olur. E-postaların temel içeriği aynı olmakla birlikte, içerik kişiselleştirilebilir. Genellikle alıcıların iletişim bilgileri (ad, soyad, şirket vb.) e-postayı kişiselleştirmek için kullanılır.
|Mail merge nasıl çalışır gösterimi:| | :- | |
| Aspose.Email, geliştiricilerin çeşitli veri kaynaklarından veri içeren mail merge işlemleri oluşturmasına olanak tanır.
Aspose.Email ile bir posta birleştirme (mail merge) yapmak için aşağıdaki adımları izleyin:
- İmzası şu olan bir fonksiyon oluşturun:
- Şunun bir örneğini oluştur MailMessage sınıf.
- Göndericiyi, alıcıyı, konuyu ve gövdeyi belirtin.
- E-postanın sonu için bir imza oluşturun.
- Şunun bir örneğini oluştur TemplateEngine sınıfına ve ona MailMessage örnek.
- İmzayı al TemplateEngine örnek.
- DataTable sınıfının bir örneğini oluşturun.
- DataTable sınıfına Receipt, FirstName ve LastName sütunlarını veri kaynağı olarak ekleyin.
- DataRow sınıfının bir örneğini oluşturun.
- DataRow nesnesinde alıcı adresini, ad ve soyadını belirtin.
- Şunun bir örneğini oluştur MailMessageCollection sınıf
- Şunu belirtin: TemplateEngine ve DataTable örneklerinde MailMessageCollection örnek.
- Şunun bir örneğini oluştur SmtpClient class ve sunucu, port, kullanıcı adı ve şifreyi belirtin.
- Şu kullanarak e-posta gönderin: SmtpClient sınıf Gönder metod.
Aşağıdaki örnekte, #FirstName# bir DataTable sütununu gösterir ve değeri kullanıcı tarafından ayarlanır. Aşağıdaki kod parçacığı, Mail Merge işlemini nasıl yapacağınızı gösterir.
// For complete examples and data files, please go to https://github.com/aspose-email/Aspose.Email-for-.NET
public static void Run()
{
// The path to the File directory.
string dataDir = RunExamples.GetDataDir_SMTP();
string dstEmail = dataDir + "EmbeddedImage.msg";
// Create a new MailMessage instance
MailMessage msg = new MailMessage();
// Add subject and from address
msg.Subject = "Hello, #FirstName#";
msg.From = "sender@sender.com";
// Add email address to send email also Add mesage field to HTML body
msg.To.Add("your.email@gmail.com");
msg.HtmlBody = "Your message here";
msg.HtmlBody += "Thank you for your interest in <STRONG>Aspose.Email</STRONG>.";
// Use GetSignment as the template routine, which will provide the same signature
msg.HtmlBody += "<br><br>Have fun with it.<br><br>#GetSignature()#";
// Create a new TemplateEngine with the MSG message, Register GetSignature routine. It will be used in MSG.
TemplateEngine engine = new TemplateEngine(msg);
engine.RegisterRoutine("GetSignature", GetSignature);
// Create an instance of DataTable and Fill a DataTable as data source
DataTable dt = new DataTable();
dt.Columns.Add("Receipt", typeof(string));
dt.Columns.Add("FirstName", typeof(string));
dt.Columns.Add("LastName", typeof(string));
DataRow dr = dt.NewRow();
dr["Receipt"] = "abc<asposetest123@gmail.com>";
dr["FirstName"] = "a";
dr["LastName"] = "bc";
dt.Rows.Add(dr);
dr = dt.NewRow();
dr["Receipt"] = "John<email.2@gmail.com>";
dr["FirstName"] = "John";
dr["LastName"] = "Doe";
dt.Rows.Add(dr);
dr = dt.NewRow();
dr["Receipt"] = "Third Recipient<email.3@gmail.com>";
dr["FirstName"] = "Third";
dr["LastName"] = "Recipient";
dt.Rows.Add(dr);
MailMessageCollection messages;
try
{
// Create messages from the message and datasource.
messages = engine.Instantiate(dt);
// Create an instance of SmtpClient and specify server, port, username and password
SmtpClient client = new SmtpClient("smtp.gmail.com", 587, "your.email@gmail.com", "your.password");
client.SecurityOptions = SecurityOptions.Auto;
// Send messages in bulk
client.Send(messages);
}
catch (MailException ex)
{
Debug.WriteLine(ex.ToString());
}
catch (SmtpException ex)
{
Debug.WriteLine(ex.ToString());
}
Console.WriteLine(Environment.NewLine + "Message sent after performing mail merge.");
}
// Template routine to provide signature
static object GetSignature(object[] args)
{
return "Aspose.Email Team<br>Aspose Ltd.<br>" + DateTime.Now.ToShortDateString();
}
Satır Satır Mail Birleştirme Nasıl Yapılır
Kullanıcı, bireysel veri satırını birleştirebilir ve ayrıca tam ve hazırlanmış bir MailMessage nesne. Bu TemplateEngine.Merge method satır satır posta birleştirme (mail merge) yapmak için kullanılabilir.
// For complete examples and data files, please go to https://github.com/aspose-email/Aspose.Email-for-.NET
// Create message from the data in current row.
message = engine.Merge(currentRow);