Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Sampel SendMail menunjukkan cara membuat aktivitas kustom yang berasal dari AsyncCodeActivity untuk mengirim email menggunakan SMTP untuk digunakan dalam aplikasi alur kerja. Aktivitas kustom menggunakan kemampuan SmtpClient untuk mengirim email secara asinkron dan mengirim email dengan autentikasi. Ini juga menyediakan beberapa fitur pengguna akhir seperti mode pengujian, penggantian token, templat file, dan jalur uji drop.
Tabel berikut merinci argumen untuk aktivitas tersebut SendMail .
| Nama | Tipe | Deskripsi |
|---|---|---|
| Pembawa acara | string | Alamat untuk host server SMTP. |
| Pelabuhan | string | Port layanan SMTP di host. |
| EnableSsl | bool | Menentukan apakah SmtpClient menggunakan Secure Sockets Layer (SSL) untuk mengenkripsi koneksi. |
| Nama Pengguna | string | Nama pengguna untuk menyiapkan kredensial untuk mengautentikasi properti pengirim Credentials . |
| Kata sandi | string | Kata sandi untuk menyiapkan kredensial untuk mengautentikasi properti pengirim Credentials . |
| Subyek | InArgument<T> <String> | Subjek pesan. |
| Tubuh | InArgument<T> <String> | Isi pesan. |
| Lampiran | InArgument<T> <String> | Pengumpulan lampiran digunakan untuk menyimpan data yang dilampirkan ke pesan email ini. |
| Dari | MailAddress | Alamat asal untuk pesan email ini. |
| Untuk | InArgument<T><MailAddressCollection> | Kumpulan alamat yang berisi penerima pesan email ini. |
| CC | InArgument<T><MailAddressCollection> | Kumpulan alamat yang berisi penerima salinan karbon (CC) untuk pesan email ini. |
| BCC | InArgument<T><MailAddressCollection> | Kumpulan alamat yang berisi penerima salinan karbon buta (BCC) untuk pesan email ini. |
| Beberapa Token | Token untuk diganti dalam isi. Fitur ini memungkinkan pengguna untuk menentukan beberapa nilai dalam isi daripada dapat diganti nanti oleh token yang disediakan menggunakan properti ini. | |
| BodyTemplateFilePath | string | Jalur templat untuk badan. Aktivitas SendMail menyalin isi file ini ke properti body-nya.Template tersebut dapat berisi token yang digantikan dengan isi dari properti token. |
| TestMailTo | MailAddress | Ketika properti ini diatur, semua email dikirim ke alamat yang ditentukan di dalamnya. Properti ini dimaksudkan untuk digunakan saat menguji alur kerja. Misalnya, ketika Anda ingin memastikan bahwa semua email dikirim tanpa mengirimkannya ke penerima yang sebenarnya. |
| TestDropPath | string | Ketika properti ini diatur, semua email juga disimpan dalam file yang ditentukan. Properti ini dimaksudkan untuk dipakai ketika Anda sedang melakukan pengujian atau peninjauan kembali alur kerja, guna memastikan bahwa format dan konten email yang dikirim adalah sesuai. |
Isi Solusi
Solusinya berisi dua proyek.
| Proyek | Deskripsi | File Penting |
|---|---|---|
| Kirim Surat | Aktivitas Mengirim Email | 1. SendMail.cs: implementasi untuk kegiatan utama 2. SendMailDesigner.xaml dan SendMailDesigner.xaml.cs: perancang untuk aktivitas SendMail 3. MailTemplateBody.htm: templat untuk email yang akan dikirim. |
| SendMailTestClient | Klien untuk menguji aktivitas SendMail. Proyek ini menunjukkan dua cara untuk memanggil aktivitas SendMail: secara deklaratif, dan terprogram. | 1. Sequence1.xaml: alur kerja yang memanggil aktivitas SendMail. 2. Program.cs: memanggil Sequence1 dan juga membuat alur kerja secara terprogram yang menggunakan SendMail. |
Konfigurasi lebih lanjut aktivitas SendMail
Meskipun tidak ditampilkan dalam sampel, pengguna dapat melakukan konfigurasi penambahan aktivitas SendMail. Tiga bagian berikutnya menunjukkan bagaimana hal ini dilakukan.
Mengirim email menggunakan token yang ditentukan dalam isi
Cuplikan kode ini menunjukkan bagaimana Anda dapat mengirim email dengan token dalam isi. Perhatikan bagaimana token disediakan di properti badan. Nilai untuk token tersebut diberikan ke properti token.
IDictionary<string, string> tokens = new Dictionary<string, string>();
tokens.Add("@name", "John Doe");
tokens.Add("@date", DateTime.Now.ToString());
tokens.Add("@server", "localhost");
new SendMail
{
From = new LambdaValue<MailAddress>(ctx => new MailAddress("john.doe@contoso.com")),
To = new LambdaValue<MailAddressCollection>(
ctx => new MailAddressCollection() { new MailAddress("someone@microsoft.com") }),
Subject = "Test email",
Body = "Hello @name. This is a test email sent from @server. Current date is @date",
Host = "localhost",
Port = 25,
Tokens = new LambdaValue<IDictionary<string, string>>(ctx => tokens)
};
Mengirim email menggunakan templat
Cuplikan ini menunjukkan cara mengirim email menggunakan token templat dalam isi. Perhatikan bahwa saat mengatur BodyTemplateFilePath properti, kita tidak perlu memberikan nilai untuk properti Isi (konten file templat akan disalin ke isi).
new SendMail
{
From = new LambdaValue<MailAddress>(ctx => new MailAddress("john.doe@contoso.com")),
To = new LambdaValue<MailAddressCollection>(
ctx => new MailAddressCollection() { new MailAddress("someone@microsoft.com") }),
Subject = "Test email",
Host = "localhost",
Port = 25,
Tokens = new LambdaValue<IDictionary<string, string>>(ctx => tokens),
BodyTemplateFilePath = @"..\..\..\SendMail\Templates\MailTemplateBody.htm",
};
Mengirim Email dalam Mode Pengujian
Cuplikan kode ini menunjukkan cara mengatur dua properti pengujian: dengan menetapkan TestMailTo, semua pesan akan dikirim ke john.doe@contoso.con tanpa memperhatikan nilai pada kolom Kepada, Cc, dan Bcc. Dengan mengatur TestDropPath semua email keluar juga akan direkam di jalur yang disediakan. Properti ini dapat diatur secara mandiri (tidak saling berkaitan).
new SendMail
{
From = new LambdaValue<MailAddress>(ctx => new MailAddress("john.doe@contoso.com")),
To = new LambdaValue<MailAddressCollection>(
ctx => new MailAddressCollection() { new MailAddress("someone@microsoft.com") }),
Subject = "Test email",
Host = "localhost",
Port = 25,
Tokens = new LambdaValue<IDictionary<string, string>>(ctx => tokens),
BodyTemplateFilePath = @"..\..\..\SendMail\Templates\MailTemplateBody.htm",
TestMailTo= new LambdaValue<MailAddress>(ctx => new MailAddress("john.doe@contoso.com")),
TestDropPath = @"c:\Samples\SendMail\TestDropPath\",
};
Instruksi Set-Up
Akses ke server SMTP diperlukan untuk sampel ini.
Untuk informasi selengkapnya tentang menyiapkan server SMTP, lihat tautan berikut ini.
Emulator SMTP yang disediakan oleh pihak ketiga tersedia untuk diunduh.
Untuk menjalankan sampel ini
Menggunakan Visual Studio, buka file solusi SendMail.sln.
Pastikan Anda memiliki akses ke server SMTP yang valid. Lihat instruksi pengaturan.
Konfigurasikan program dengan alamat server Anda, serta alamat email dari dan ke.
Untuk menjalankan sampel ini dengan benar, Anda mungkin perlu mengonfigurasi nilai alamat email Dari dan Ke dan alamat server SMTP di Program.cs dan di Sequence.xaml. Anda harus mengubah alamat di kedua lokasi karena program mengirim email dengan dua cara berbeda
Untuk membangun solusi, tekan CTRL+SHIFT+B.
Untuk menjalankan solusi, tekan CTRL+F5.