ارسال ایمیل‌ها و فوروارد پیام‌ها از طریق SMTP

این SmtpClient کلاس در Aspose.Email برای Python از طریق .NET یک رابط قوی و انعطاف‌پذیر برای ارسال ایمیل‌ها با استفاده از پروتکل انتقال ایمیل ساده (SMTP) فراهم می‌کند. این نقطه‌ی ورودی اصلی برای توسعه دهندگانی است که می‌خواهند پیام‌های ایمیل را در برنامه‌های خود تحویل دهند.

ویژگی‌های کلیدی SmtpClient شامل کلاس:

  • تحویل ایمیل SMTP: ارسال ایمیل‌ها را به‌صورت مستقیم از طریق سرور SMTP ممکن می‌سازد.

  • گزینه‌های تحویل جایگزین: از روش‌های تحویل اضافی مانند ذخیرهٔ پیام‌ها در سیستم فایل یا نوشتن در صف پیام پشتیبانی می‌کند.

  • عملیات‌های همزمان و ناهمزمان:

    • حالت همزمان: از متدهای Send برای مسدود کردن رشتهٔ جاری تا زمان ارسال کامل ایمیل استفاده کنید.

    • حالت ناهمزمان: از متدهای SendAsync برای ارسال پیام‌ها در پس‌زمینه استفاده کنید تا برنامه پاسخگو بماند.

  • پشتیبانی TNEF: امکان ارسال پیام‌ها در قالب Transport Neutral Encapsulation Format (TNEF) برای سازگاری با ویژگی‌های Microsoft Outlook را می‌دهد.

این مقاله تمام عملکردهای اصلی موجود از طریق را پوشش می‌دهد SmtpClient کلاس، نشان می‌دهد چگونه پیام‌های ایمیل استاندارد و پیشرفته را با کنترل کامل بر پیکربندی و تحویل ارسال کنید.

ارسال ایمیل‌ها به‌صورت همزمان

این SmtpClient.send متد امکان ارسال پیام ایمیل به‌صورت همزمان را فراهم می‌کند. این روش زمانی مفید است که برنامه نیاز دارد تحویل را قبل از ادامه تایید کند.

برای ارسال ایمیل متن ساده به‌صورت همزمان با استفاده از Aspose.Email برای Python از طریق .NET، از مراحل و نمونه کد زیر استفاده کنید:

  1. ایجاد یک MailMessage نمونه و تنظیم فرستنده، گیرنده(ها)، موضوع و بدنه.
  2. پیکربندی SmtpClient با اطلاعات سرور شامل میزبان، پورت، نام کاربری و رمز عبور.
  3. متد را فراخوانی کنید send متد روی SmtpClient نمونه و پاس دادن در MailMessage شیء.
# Create email
eml = ae.MailMessage()
eml.subject = "Message with Plain Text Body"
eml.body = "This is text body."
eml.from_address = "from@gmail.com"
eml.to.append(ae.MailAddress("to@gmail.com", "Recipient 1")) 

# Configure SmtpClient object
client = SmtpClient("smtp.gmail.com", 995, "username", "password")
client.security_options = SecurityOptions.AUTO 

# Send email
client.send(eml)

ارسال یک فایل EML از پیش ساخته شده از طریق SMTP

اگر نیاز دارید پیام ایمیلی که قبلاً ساخته و در قالب EML ذخیره شده است را بفرستید، می‌توانید آن را به‌صورت برنامه‌نویسی با استفاده از Aspose.Email برای Python از طریق .NET بارگذاری و ارسال کنید.

کد نمونه زیر به همراه مراحل نشان می‌دهد چگونه یک فایل EML را با استفاده از SmtpClient:

  1. فایل EML را با استفاده از MailMessage.load متد.
  2. یک نمونه از … را ایجاد و پیکربندی کنید SmtpClient، با ارائهٔ میزبان سرور SMTP، نام کاربری و رمز عبور برای احراز هویت.
  3. متد را فراخوانی کنید send متد روی SmtpClient نمونه را ایجاد کنید و پیام بارگذاری‌شده را پاس کنید.
import aspose.email as ae

message = ae.MailMessage.load("test.eml")

# Send this message using SmtpClient
client = ae.clients.SmtpClient("host", "username", "password")
client.send(message)

ارسال ایمیل متن ساده

می‌توانید با استفاده از Aspose.Email، ایمیل متن ساده را با تعیین بدنه پیام به‌صورت متن ساده ارسال کنید. MailMessage.body ویژگی برای تعریف محتوا استفاده می‌شود، در حالی که SmtpClient کلاس فرآیند ارسال را مدیریت می‌کند.

کد نمونه زیر به همراه مراحل نشان می‌دهد چگونه یک ایمیل متن ساده ارسال شود:

  1. یک نمونه از MailMessage کلاس.
  2. آدرس‌های ایمیل فرستنده و گیرنده را تنظیم کنید.
  3. محتوای متن ساده را به ویژگی body اختصاص دهید.
  4. یک نمونه از SmtpClient کلاس با جزئیات سرور و اعتبارنامه‌ها.
  5. ارسال ایمیل با استفاده از send متد.

ارسال ایمیل HTML

Aspose.Email برای Python از طریق .NET به شما امکان می‌دهد ایمیل‌ها را با بدنه‌های قالب‌بندی شده HTML ارسال کنید با استفاده از MailMessage کلاس. با اختصاص محتوای HTML به html_body ویژگی و تنظیم is_body_html به True تنظیم کنید، می‌توانید پیام‌های غنی و قالب‌بندی‌شده بسازید.

کد نمونه زیر به همراه مراحل نشان می‌دهد چگونه یک ایمیل HTML ارسال شود:

  1. یک نمونه از MailMessage کلاس.
  2. آدرس‌های ایمیل فرستنده و گیرنده را تنظیم کنید.
  3. تنظیم is_body_html = True برای نشان دادن قالب‌بندی HTML.
  4. محتوای HTML خود را به html_body ویژگی.
  5. ایجاد و پیکربندی SmtpClient نمونه.
  6. از send متد برای انتقال پیام.

توجه: اگرچه این مثال از HTML ساده استفاده می‌کند، می‌توانید ساختارهای HTML پیچیده‌تر را برای ایجاد قالب‌های ایمیل واکنش‌گرا و برندسازی‌شده بگنجانید.

ارسال ایمیل HTML با متن ساده به عنوان جایگزین

هنگام ارسال ایمیل‌های HTML، بهترین روش این است که نسخهٔ متن ساده را برای دریافت‌کنندگانی که کلاینت ایمیل آنها از HTML پشتیبانی نمی‌کند، اضافه کنید. Aspose.Email برای Python از طریق .NET این امکان را فراهم می‌کند. AlternateView کلاس برای شامل‌کردن هر دو محتوای HTML و متن ساده در یک پیام واحد، سازگاری و تجربه کاربری را ارتقا می‌دهد.

کد نمونه زیر و مراحل نشان می‌دهند چگونه ایمیلی با محتوای متنی جایگزین ارسال کنید:

  1. یک نمونه از MailMessage کلاس.
  2. آدرس‌های ایمیل فرستنده و گیرنده را تنظیم کنید.
  3. محتوای HTML را به html_body ویژگی و تنظیم is_body_html = True.
  4. یک AlternateView متن ساده ایجاد کنید با استفاده از create_alternate_view_from_string.
  5. نمای جانبی را به alternate_views مجموعهٔ MailMessage.
  6. ایجاد و پیکربندی SmtpClient نمونه.
  7. ارسال ایمیل با استفاده از send متد.

نحوه ارسال ایمیل‌های دسته‌ای

ارسال ایمیل‌های دسته‌ای شامل ارسال همزمان چندین پیام — که هر کدام ممکن است به گیرنده متفاوتی ارسال شود. Aspose.Email این قابلیت را با استفاده از SmtpClient کلاس.

کد نمونه زیر نشان می‌دهد چگونه یک دسته‌ ایمیل را در یک بار ارسال کنید:

  1. یک نمونه از SmtpClient کلاس و میزبان، پورت، اعتبارنامه‌ها و تنظیمات امنیتی آن را پیکربندی کنید.
  2. چندین MailMessage نمونه‌ها — هر کدام نمایانگر یک پیام ایمیل جداگانه هستند.
  3. فرستنده، گیرنده، موضوع و بدنه پیام را برای هر ایمیل مشخص کنید.
  4. همه را اضافه کنید MailMessage اشیا به یک MailMessageCollection.
  5. متد را فراخوانی کنید send متد از SmtpClient کلاس، با پاس کردن MailMessageCollection به‌عنوان آرگومان.
import aspose.email as ae
from aspose.email.clients import SmtpClient, SecurityOptions
from aspose.email import MailMessage, MailMessageCollection

# Create individual email messages
message1 = MailMessage("from@gmail.com", "to1@gmail.com", "Bulk Email - Message 1", "Hello, this is message 1.")
message2 = MailMessage("from@gmail.com", "to2@gmail.com", "Bulk Email - Message 2", "Hello, this is message 2.")
message3 = MailMessage("from@gmail.com", "to3@gmail.com", "Bulk Email - Message 3", "Hello, this is message 3.")

# Add messages to a collection
many_messages = MailMessageCollection()
many_messages.append(message1)
many_messages.append(message2)
many_messages.append(message3)

# Configure SMTP client
client = SmtpClient("smtp.gmail.com", 995, "username", "password")
client.security_options = SecurityOptions.AUTO

# Send all messages in bulk
client.send(many_messages)

ارسال ایمیل‌ها با پشتیبانی از چنداتصال

Aspose.Email برای Python از طریق .NET به شما اجازه می‌دهد هنگام ارسال ایمیل‌ها از طریق SmtpClient کلاس. این ویژگی می‌تواند هنگام ارسال حجم بالای ایمیل با توزیع بار کاری در چندین اتصال، عملکرد را بهینه‌سازی کند. با این حال، توجه داشته باشید که فعال‌سازی حالت چنداتصال تضمین‌کننده افزایش عملکرد در تمام سناريوها نیست — این موضوع به پیکربندی سرور و شرایط شبکه بستگی دارد.

ویژگی‌های کلیدی:

  • use_multi_connection: حالت چنداتصال برای مشتری SMTP را فعال یا غیرفعال می‌کند.

  • connections_quantity: تعداد اتصال‌هایی را که هنگام فعال‌سازی حالت چنداتصال باز می‌شوند، مشخص می‌کند.

کد نمونه زیر نشان می‌دهد چگونه حالت چنداتصال را فعال کنید:

  1. یک نمونه از … را ایجاد و پیکربندی کنید SmtpClient.
  2. جزئیات سرور مانند میزبان، پورت، نام کاربری، رمز عبور و رمزنگاری را تنظیم کنید.
  3. حالت چنداتصال را با تنظیم فعال کنید use_multi_connection.
  4. تعداد اتصالات را با connections_quantity.
import aspose.email as ae

client = ae.clients.smtp.SmtpClient
client.host = "<HOST>"
client.username = "<USERNAME>"
client.password = "<PASSWORD>"
client.port = 587
client.supported_encryption = ae.clients.base.EncryptionProtocols.TLS
client.security_options = ae.clients.SecurityOptions.SSL_EXPLICIT

client.connections_quantity = 5
client.use_multi_connection = ae.clients.MultiConnectionMode.ENABLE
client.send(messages)

ارسال ایمیل‌های قالب‌بندی شده با TNEF

قالب حمل‌ونقل خنثی (TNEF) یک قالب ایمیل اختصاصی است که توسط Microsoft Outlook و Exchange برای حفظ قالب‌بندی‌های غنی، اشیاء جاسازی شده و ویژگی‌های خاص مانند دکمه‌های نظرسنجی استفاده می‌شود. کلاینت‌های ایمیل استاندارد ممکن است این قالب‌بندی را هنگام استفاده از پیام‌های مبتنی بر MIME معمولی حفظ نکنند.

Aspose.Email برای Python از طریق .NET از ارسال ایمیل‌ها در قالب TNEF پشتیبانی می‌کند تا تمام قالب‌بندی‌ها و ویژگی‌های پیشرفته حفظ شوند. این کار با فعال‌سازی use_tnef ویژگی SmtpClient کلاس.

کد نمونه زیر و مراحل نشان می‌دهند چگونه یک ایمیل TNEF ارسال شود:

  1. یک پیام EML موجود را بارگذاری کنید یا با استفاده از MailMessage کلاس.
  2. آدرس‌های فرستنده و گیرنده را تنظیم کنید.
  3. قالب‌بندی TNEF را با تنظیم فعال کنید use_tnef = True روی SmtpClient نمونه.
  4. پیام را با استفاده از send() متد.

ارسال درخواست‌های جلسه از طریق ایمیل

Microsoft Outlook و دیگر کلاینت‌های ایمیل با قابلیت تقویم مانند IBM Lotus Notes به کاربران امکان می‌دهند قرارهای ملاقات را مستقیماً از صندوق ورودی مدیریت کنند. زمانی که کاربر یک دعوت‌نامه جلسه دریافت می‌کند، می‌تواند آن را مستقیماً در کلاینت ایمیل خود بپذیرد یا رد کند. با Aspose.Email برای Python از طریق .NET، توسعه‌دهندگان می‌توانند به‌صورت برنامه‌نویسی این دعوت‌نامه‌های جلسه را با رعایت استاندارد iCalendar (RFC 2445) ایجاد و ارسال کنند.

نحوه ارسال دعوت‌نامه‌های جلسه از طریق ایمیل

Aspose.Email پشتیبانی داخلی برای نوشتن و ارسال درخواست‌های ملاقات iCalendar به‌عنوان بخشی از ایمیل فراهم می‌کند. این درخواست‌ها با کلاینت‌های تقویم محبوب سازگارند و به دریافت‌کنندگان امکان پاسخ‌گویی به دعوت‌نامه‌ها را به‌صورت آسان می‌دهند.

|درخواست جلسه iCalendar ارسال شده توسط ایمیل| | :- | |todo:image_alt_text|

کد نمونه زیر نشان می‌دهد چگونه درخواست‌ها را از طریق ایمیل ارسال کنید:

  1. ایجاد یک MailMessage نمونه.
  2. آدرس‌های ایمیل فرستنده و گیرنده را مشخص کنید.
  3. یک Appointment شیء با مکان، زمان شروع/پایان، فرستنده و گیرندگان.
  4. خلاصه و توصیف قرار ملاقات را تنظیم کنید.
  5. قرار دادن قرار ملاقات به ایمیل با استفاده از add_alternate_view().
  6. ارسال ایمیل با استفاده از SmtpClient.

پشتیبانی iCalendar برای IBM Lotus Notes

Aspose.Email از قالب iCalendar (RFC 2445) استفاده می‌کند که اطمینان می‌دهد درخواست‌های جلسه شما با Microsoft Outlook، IBM Lotus Notes و هر کلاینت دیگری که از این استاندارد پشتیبانی می‌کند سازگار باشد. همان فرآیند می‌تواند بدون توجه به پلتفرم گیرنده استفاده شود.

ارسال ایمیل‌های پیشرو با استفاده از کلاینت SMTP

انتقال ایمیل‌ها یک کار رایج در ارتباطات دیجیتالی است و اغلب برای اشتراک‌گذاری پیام‌های دریافت‌شده با دیگران استفاده می‌شود. Aspose.Email برای Python از طریق .NET به توسعه‌دهندگان اجازه می‌دهد ایمیل‌ها را به‌صورت برنامه‌نویسی با استفاده از SmtpClient کلاس. متد forward امکان ارسال مجدد ایمیل‌های ذخیره‌شده یا دریافت‌شده به گیرندگان جدید بدون درگیر کردن فرستنده اصلی را فراهم می‌کند.

در زیر یک کد نمونه وجود دارد که نشان می‌دهد چگونه یک ایمیل را با استفاده از MailMessage کلاس:

ارسال مستقیم فایل‌های EML بدون بارگذاری در MailMessage

Aspose.Email همچنین از ارسال مستقیم فایل‌های .eml بدون بارگذاری اولیه آن‌ها به یک MailMessage شیء. این به‌ویژه در سناریوهایی که نیاز به کاهش مصرف حافظه سیستم است مفید می‌باشد.

کد نمونه زیر نشان می‌دهد چگونه یک فایل EML را به‌صورت مستقیم ارسال کنید:

import aspose.email as ae

client = ae.clients.smtp.SmtpClient(host, smtp_port, username, password, ae.clients.SecurityOptions.AUTO)
file = open("test.eml", "rb")
client.forward(sender, recipients, file)