نمایش نتایج 1 تا 14 از 14

نام تاپیک: ارسال ایمیل از نرم افزار Windows Forms

  1. #1
    کاربر دائمی آواتار ROSTAM2
    تاریخ عضویت
    اسفند 1390
    محل زندگی
    فارس
    پست
    2,010

    ارسال ایمیل از نرم افزار Windows Forms

    سلام

    من می خوام برای بازیابی رمز ارسال ایمیل به حساب ایمیل کاربر داشته باشم اما با این خطا مواجه می شه

    SharedScreenshot04.jpg


    Imports System.Net.Mail
    Public Class Mail
    Protected Friend Shared WithEvents SMTP As New SmtpClient("ssl://smtp.gmail.com:465")
    Shared Sub SendMessage(Address As String, UserAccount As String, Value As String)
    SMTP.UseDefaultCredentials = False
    SMTP.Credentials = New Net.NetworkCredential("vbloverprogrammer@gmail.com ", "Password")
    SMTP.Port = 587
    SMTP.EnableSsl = True
    SMTP.Host = "smtp.gmail.com"


    Dim Mail As New MailMessage
    Mail.From = New MailAddress("vbover@rocketmail.com")
    Mail.To.Add(Address)
    Mail.Subject = "بازیابی رمز حساب کاربری نرم افزار ثبت خرید و فروش"
    Mail.Body = String.Format("{1} {2}: {0}{3} ", vbNewLine, "کد بازیابی رمز حساب کاربری", UserAccount, Value)
    Try
    SMTP.Send(Mail)
    Catch ex As Exception
    MsgBox(ex.Message, MsgBoxStyle.Exclamation)
    End Try
    End Sub

    Private Shared Sub SMTP_SendCompleted(sender As Object, e As System.ComponentModel.AsyncCompletedEventArgs) Handles SMTP.SendCompleted
    MsgBox("کد بازیابی رمز به پست الکترونیک حساب کاربری ارسال شد....", MsgBoxStyle.Information)
    End Sub
    End Class


    شماره Port درسته یا نه؟!

    باید از فایروال Port آزاد بشه؟!

    من ی ارسال ایمیل ساده می خوام یک کد به ایمیل کاربر ارسال کنه....


    Private Sub LinkLabel1_LinkClicked(sender As System.Object, e As System.Windows.Forms.LinkLabelLinkClickedEventArgs ) Handles LinkLabel1.LinkClicked
    Mail.SendMessage("vblovergamer@gmail.com", "ROSTAM", "123456789")
    End Sub

  2. #2
    کاربر دائمی آواتار _behnam_
    تاریخ عضویت
    مهر 1389
    محل زندگی
    سونای ایران ( بوشهر )
    پست
    988

    نقل قول: ارسال ایمیل از نرم افزار Windows Forms

    سلام.
    برای استفاده از SSL سرور جیمیل از پورت 587 استفاده کنید.
    ایمیلی هم که به Mail.From دادید به ایمیلی که به NetworkCredential دادید تغییر بدید و تست کنید ببینید مشکلتون حل میشه.

  3. #3
    کاربر دائمی آواتار ROSTAM2
    تاریخ عضویت
    اسفند 1390
    محل زندگی
    فارس
    پست
    2,010

    نقل قول: ارسال ایمیل از نرم افزار Windows Forms

    نقل قول نوشته شده توسط _behnam_ مشاهده تاپیک
    سلام.
    برای استفاده از SSL سرور جیمیل از پورت 587 استفاده کنید.
    ایمیلی هم که به Mail.From دادید به ایمیلی که به NetworkCredential دادید تغییر بدید و تست کنید ببینید مشکلتون حل میشه.
    سلام
    همه اینکارا رو انجام دادم.
    بقیه پروژه های آموزشی رو هم تست کردم خطا دارن. فکر کنم چیزی باید روی سیستم نصب یا فعال بشه! (Windows 10)

  4. #4
    کاربر دائمی آواتار _behnam_
    تاریخ عضویت
    مهر 1389
    محل زندگی
    سونای ایران ( بوشهر )
    پست
    988

    نقل قول: ارسال ایمیل از نرم افزار Windows Forms

    نقل قول نوشته شده توسط ROSTAM2 مشاهده تاپیک
    همه اینکارا رو انجام دادم.
    بقیه پروژه های آموزشی رو هم تست کردم خطا دارن. فکر کنم چیزی باید روی سیستم نصب یا فعال بشه! (Windows 10)
    نیاز به چیز اضافه نیست. فقط کافیه اطلاعات رو درست وارد کنید. خطای مربوط به 5.7.0 معتبر نبودن یوزر و پسورد هست. اطلاع دارید که باید از App Passwords استفاده کنید؟
    مطمعن هستید پسورد رو درست وارد میکنید؟


    کلاسی ک نوشتم برای ارسال ایمیل تست کردم مشکل نداشت.



    Imports System.Net
    Imports System.Net.Mail
    Imports System.Windows.Forms.VisualStyles.VisualStyleEleme nt.StartPanel

    Public Class GmailSenderResult
    Public Success As Boolean = False
    Public Message As String = vbEmpty
    Public Ex As Exception
    End Class
    ''' <summary>
    ''' Class Gmail Sender
    ''' by : Behnam Eslamirad
    ''' </summary>
    Public Class GmailSender


    Private SMTP_SERVER As String = "smtp.gmail.com"
    Private SMTP_PORT As Integer = 587

    ''' <summary>
    ''' Mail Sender
    ''' </summary>
    Public Sender As String
    ''' <summary>
    ''' Password Mail Sender
    ''' </summary>
    Public Password As String
    ''' <summary>
    ''' Create object from class with constract parameters
    ''' </summary>
    ''' <param name="Sender">Mail Sender</param>
    ''' <param name="Password">Password Mail Sender</param>
    Public Sub New(Sender As String, Password As String)
    Me.Sender = Sender
    Me.Password = Password
    End Sub
    ''' <summary>
    ''' Create object from class without constract parameters
    ''' </summary>
    Public Sub New()

    End Sub

    ''' <summary>
    ''' Send
    ''' </summary>
    ''' <param name="MailTo">Destination email for sending messages</param>
    ''' <param name="Subject">The Subject message to send</param>
    ''' <param name="Message">The message to send</param>
    ''' <returns>Result as GmailSenderResult</returns>
    Public Function Send(MailTo As String, Subject As String, Message As String) As GmailSenderResult
    Dim Result As New GmailSenderResult()

    Try
    Dim SmtpServer As New SmtpClient()
    Dim mail As New MailMessage()
    SmtpServer.UseDefaultCredentials = False
    SmtpServer.Credentials = New Net.NetworkCredential(Sender, Password)
    SmtpServer.Port = SMTP_PORT
    SmtpServer.Host = SMTP_SERVER
    SmtpServer.EnableSsl = True
    SmtpServer.DeliveryMethod = SmtpDeliveryMethod.Network
    mail = New MailMessage()
    mail.From = New MailAddress(Sender)
    mail.To.Add(MailTo)
    mail.Subject = Subject
    mail.Body = Message
    SmtpServer.Send(mail)
    Result.Message = "sent password."
    Result.Success = True
    Catch ex As Exception
    Result.Ex = ex
    Result.Message = ex.Message
    Result.Success = False
    End Try
    Return Result
    End Function
    End Class


    برای استفاده کدهای زیر


    Dim gmail As New GmailSender("example@gmail.com", "app passwords gmail")
    Dim Result As GmailSenderResult = gmail.Send("example@gmail.com", "subject message", "hi, this is body message")
    If Result.Success Then
    MsgBox("Sent message.")
    Else
    MsgBox(Result.Message)
    End If


    البته فک کنم کدهای خودتون هم مشکلی نداشته باشه و فقط با قراردادن App Passwords مشکل حل بشه.
    آخرین ویرایش به وسیله _behnam_ : شنبه 23 تیر 1403 در 07:40 صبح

  5. #5
    کاربر دائمی آواتار ROSTAM2
    تاریخ عضویت
    اسفند 1390
    محل زندگی
    فارس
    پست
    2,010

    نقل قول: ارسال ایمیل از نرم افزار Windows Forms

    نقل قول نوشته شده توسط _behnam_ مشاهده تاپیک
    نیاز به چیز اضافه نیست. فقط کافیه اطلاعات رو درست وارد کنید. خطای مربوط به 5.7.0 معتبر نبودن یوزر و پسورد هست. اطلاع دارید که باید از App Passwords استفاده کنید؟
    مطمعن هستید پسورد رو درست وارد میکنید؟


    کلاسی ک نوشتم برای ارسال ایمیل تست کردم مشکل نداشت.



    Imports System.Net
    Imports System.Net.Mail
    Imports System.Windows.Forms.VisualStyles.VisualStyleEleme nt.StartPanel

    Public Class GmailSenderResult
    Public Success As Boolean = False
    Public Message As String = vbEmpty
    Public Ex As Exception
    End Class
    ''' <summary>
    ''' Class Gmail Sender
    ''' by : Behnam Eslamirad
    ''' </summary>
    Public Class GmailSender


    Private SMTP_SERVER As String = "smtp.gmail.com"
    Private SMTP_PORT As Integer = 587

    ''' <summary>
    ''' Mail Sender
    ''' </summary>
    Public Sender As String
    ''' <summary>
    ''' Password Mail Sender
    ''' </summary>
    Public Password As String
    ''' <summary>
    ''' Create object from class with constract parameters
    ''' </summary>
    ''' <param name="Sender">Mail Sender</param>
    ''' <param name="Password">Password Mail Sender</param>
    Public Sub New(Sender As String, Password As String)
    Me.Sender = Sender
    Me.Password = Password
    End Sub
    ''' <summary>
    ''' Create object from class without constract parameters
    ''' </summary>
    Public Sub New()

    End Sub

    ''' <summary>
    ''' Send
    ''' </summary>
    ''' <param name="MailTo">Destination email for sending messages</param>
    ''' <param name="Subject">The Subject message to send</param>
    ''' <param name="Message">The message to send</param>
    ''' <returns>Result as GmailSenderResult</returns>
    Public Function Send(MailTo As String, Subject As String, Message As String) As GmailSenderResult
    Dim Result As New GmailSenderResult()

    Try
    Dim SmtpServer As New SmtpClient()
    Dim mail As New MailMessage()
    SmtpServer.UseDefaultCredentials = False
    SmtpServer.Credentials = New Net.NetworkCredential(Sender, Password)
    SmtpServer.Port = SMTP_PORT
    SmtpServer.Host = SMTP_SERVER
    SmtpServer.EnableSsl = True
    SmtpServer.DeliveryMethod = SmtpDeliveryMethod.Network
    mail = New MailMessage()
    mail.From = New MailAddress(Sender)
    mail.To.Add(MailTo)
    mail.Subject = Subject
    mail.Body = Message
    SmtpServer.Send(mail)
    Result.Message = "sent password."
    Result.Success = True
    Catch ex As Exception
    Result.Ex = ex
    Result.Message = ex.Message
    Result.Success = False
    End Try
    Return Result
    End Function
    End Class


    برای استفاده کدهای زیر


    Dim gmail As New GmailSender("example@gmail.com", "app passwords gmail")
    Dim Result As GmailSenderResult = gmail.Send("example@gmail.com", "subject message", "hi, this is body message")
    If Result.Success Then
    MsgBox("Sent message.")
    Else
    MsgBox(Result.Message)
    End If


    البته فک کنم کدهای خودتون هم مشکلی نداشته باشه و فقط با قراردادن App Passwords مشکل حل بشه.
    App Password چی هست حالا؟!

    من از App Password هیچ اطلاعی ندارم.

  6. #6
    کاربر دائمی آواتار _behnam_
    تاریخ عضویت
    مهر 1389
    محل زندگی
    سونای ایران ( بوشهر )
    پست
    988

    نقل قول: ارسال ایمیل از نرم افزار Windows Forms

    نقل قول نوشته شده توسط ROSTAM2 مشاهده تاپیک
    App Password چی هست حالا؟!

    من از App Password هیچ اطلاعی ندارم.
    از سال 2022 گوگل بخاطر امنیت حساب های کاربری دیگه به کلاینت ها اجازه ورود با یوزر و پسورد جیمیل رو نداد و بجاش اعلام کرد که اگر میخواید توی نرم افزارهاتون از حساب جیمیل استفاده کنید باید حتما توی تنظیمات حسابتون یه اپ بسازید و از پس کدی که بهتون میدیم به جای پسورد توی نرم افزاراتون استفاده کنید.
    ساخت App Passwords هم یکی از شروطش فعال کردن two-factor authentication (2FA) حساب جیمیل هست.
    پس اول two-factor authentication (2FA) رو فعال کنید و بعد به لینک زیر برید و اپ بسازید تا بهتون یه Passcode بده که 16 رقمی هست.
    https://myaccount.google.com/apppasswords
    اینجا لاگین میکنید مجدد و اپ میسازید.
    ساختار Passcode هم به شکل زیره
     
    xxxx xxxx xxxx xxxx

    که دقیقا همین رو بجای پسورد جیمیل قرار میدید.

  7. #7
    کاربر دائمی آواتار ROSTAM2
    تاریخ عضویت
    اسفند 1390
    محل زندگی
    فارس
    پست
    2,010

    نقل قول: ارسال ایمیل از نرم افزار Windows Forms

    نقل قول نوشته شده توسط _behnam_ مشاهده تاپیک
    از سال 2022 گوگل بخاطر امنیت حساب های کاربری دیگه به کلاینت ها اجازه ورود با یوزر و پسورد جیمیل رو نداد و بجاش اعلام کرد که اگر میخواید توی نرم افزارهاتون از حساب جیمیل استفاده کنید باید حتما توی تنظیمات حسابتون یه اپ بسازید و از پس کدی که بهتون میدیم به جای پسورد توی نرم افزاراتون استفاده کنید.
    ساخت App Passwords هم یکی از شروطش فعال کردن two-factor authentication (2FA) حساب جیمیل هست.
    پس اول two-factor authentication (2FA) رو فعال کنید و بعد به لینک زیر برید و اپ بسازید تا بهتون یه Passcode بده که 16 رقمی هست.
    https://myaccount.google.com/apppasswords
    اینجا لاگین میکنید مجدد و اپ میسازید.
    ساختار Passcode هم به شکل زیره
     
    xxxx xxxx xxxx xxxx

    که دقیقا همین رو بجای پسورد جیمیل قرار میدید.
    من که 2FA رو پیدا نکردم آیا می تونه تغییر کرده باشه به
    2-Step Verification


    SharedScreenshot06.jpg

  8. #8
    کاربر دائمی آواتار _behnam_
    تاریخ عضویت
    مهر 1389
    محل زندگی
    سونای ایران ( بوشهر )
    پست
    988

    نقل قول: ارسال ایمیل از نرم افزار Windows Forms

    بله درسته همین گزینه هست

  9. #9
    کاربر دائمی آواتار ROSTAM2
    تاریخ عضویت
    اسفند 1390
    محل زندگی
    فارس
    پست
    2,010

    نقل قول: ارسال ایمیل از نرم افزار Windows Forms

    نقل قول نوشته شده توسط _behnam_ مشاهده تاپیک
    بله درسته همین گزینه هست
    خیلی خیلی ممنون و تشکر فراوان

    ویدئوش رو هم ساختم برای آیندگانی که می خوان ارسال ایمیل داشته باشن: https://www.aparat.com/v/ehm9b5d

  10. #10
    کاربر دائمی آواتار ROSTAM2
    تاریخ عضویت
    اسفند 1390
    محل زندگی
    فارس
    پست
    2,010

    نقل قول: ارسال ایمیل از نرم افزار Windows Forms

    سلام مجدد

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

    SharedScreenshot12.jpg

  11. #11
    کاربر دائمی آواتار ROSTAM2
    تاریخ عضویت
    اسفند 1390
    محل زندگی
    فارس
    پست
    2,010

    نقل قول: ارسال ایمیل از نرم افزار Windows Forms

    سلام سجدد

    آیا کسی می دونه چرا ارسال ایمیل از سیستم من دیگه کار نمی کنه. این اتفاق بعد از نصب SQL Server و SQL Server Management Studio افتاده.

    به نظر میاد ربطی ب SQL Server نداشته باشه کلا نمی شه ایمیل ارسال و دریافت کرد از گوگل از صبح امروز اینطور شده اول مردادماه سال 1403
    آخرین ویرایش به وسیله ROSTAM2 : دوشنبه 01 مرداد 1403 در 18:01 عصر

  12. #12
    کاربر دائمی آواتار mazoolagh
    تاریخ عضویت
    اردیبهشت 1384
    سن
    73
    پست
    3,578

    نقل قول: ارسال ایمیل از نرم افزار Windows Forms

    نقل قول نوشته شده توسط ROSTAM2 مشاهده تاپیک
    سلام مجدد

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

    یه بخشی که valid بودن آدرس ایمیل از نظر فرمت هست که خب کاری نداره.

    گام بعدی چک valid بودن خود دومین هست،
    و بعد از اون چک درست بودن رکوردهای mx واسه اون دومین هست.

    ولی باز هم همه اینها مثبت باشه تا پاسخ سرور رو نگیرین اطمینانی نیست.

    یک سری api دارن بعضی شرکتها (فکر نکنم رایگان باشه) ولی برای ایمیل های ir مطمئنا کار نمیکنه.
    =====

    به هر حال شما برای فروش نرم افزارهای خودتون باید یک سایت داشته باشین.
    برای ارتباط با مشتریاتون بهتره روی همون سایت هم وب سرویس پیامک و هم سرویس ایمیل واسه ریست پسورد و ... بذارین (نه این که از کامپیوتر خودتون بفرستین)
    و هم این که ایمیل و شماره موبایل خریدار رو همراه مشخصات دیگه اش در دیتابیس (روی سرور طبیعتا) نگهداری کنین،
    و ایمیل و پیامک رو از طریق سرور رو همون آدرس داده شده بفرستین.

  13. #13
    کاربر دائمی آواتار _behnam_
    تاریخ عضویت
    مهر 1389
    محل زندگی
    سونای ایران ( بوشهر )
    پست
    988

    نقل قول: ارسال ایمیل از نرم افزار Windows Forms

    نقل قول نوشته شده توسط ROSTAM2 مشاهده تاپیک
    سلام مجدد

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

    سلام
    تاجایی که من بررسی کردم توی سرورهای جیمیل امکان مشخص شدن عدم وجود ایمیل با استفاده از SmtpClient وجود نداره. یعنی جیمیل درصورت درست نبودن آدرس ایمیل هم هیچ catch رو برنمیگردونه.
    یه راهش اینه ایمیل های ورودی رو چک کنید. چراکه جیمیل وقتی ایمیلی رو به دلیل عدم وجود گیرنده ارسال نکنه ، یه ایمیل واستون میفرسته و توش میگه که اینیل وجود نداشت. ( که اصلا پیشنهاد نمیشه این روش ، ممکنه بن بشید)
    روش بعد استفاده از سرورشخصی هست که بتونید با تغییرات موقع استفاده از SMTP با توجه به نتیجه catch دلخواه رو ارسال کنید. ( روش منطقی تر)

  14. #14
    کاربر دائمی آواتار ROSTAM2
    تاریخ عضویت
    اسفند 1390
    محل زندگی
    فارس
    پست
    2,010

    نقل قول: ارسال ایمیل از نرم افزار Windows Forms

    سلام مجدد

    این دستورات ارسال ایمیل در ویندور 10 درست عمل می کنه ولی در ویندوز 7 خطا برمی گردونه....

    SendMail Error on Win 7.png

    With SMTP
    .UseDefaultCredentials = False
    .Credentials = New Net.NetworkCredential("vbloverprogrammer@gmail.com ", My.GMailAppPassword)
    .Port = 587
    .EnableSsl = True
    .Host = "smtp.gmail.com"
    End With



    Dim Mail As New MailMessage(New MailAddress("vbloverprogrammer@gmail.com"), New MailAddress(Address))
    With Mail
    .Priority = MailPriority.High
    .SubjectEncoding = System.Text.Encoding.Default
    .IsBodyHtml = True
    .BodyEncoding = System.Text.Encoding.Default
    Select Case Job
    Case SendMailJobs.ActivationSoftware
    .Subject = "درخواست فعالسازی نرم افزار محاسبه قیمت تمام شده محصول"
    Case SendMailJobs.EMailConfirmation
    .Subject = "تأیید پست الکترونیک"
    Case SendMailJobs.RecoverPassword
    .Subject = "تغییر رمز حساب کاربری"


    End Select
    .Body = HDoc.documentElement.outerHTML
    End With
    Try
    SMTP.Send(Mail)
    Catch ex As Exception
    MsgBox(RecoveryCode)
    MsgBox(ex.Message, MsgBoxStyle.Exclamation)
    Return False
    End Try


    منظورش از Certificate در این دستور چیه؟!!! و برای رفع خطا باید چکار کرد؟!!!

تاپیک های مشابه

  1. سوال: تفاوت windows forms app با windows forms app (.net framework)
    نوشته شده توسط god of war 313 در بخش C#‎‎
    پاسخ: 2
    آخرین پست: یک شنبه 17 مهر 1401, 21:06 عصر
  2. Windows Forms یا WPF؟
    نوشته شده توسط eshpilen در بخش برنامه نویسی مبتنی بر Microsoft .Net Framework
    پاسخ: 5
    آخرین پست: دوشنبه 04 مرداد 1389, 14:24 عصر
  3. مقایسه پرفرمنس WPF با Windows Forms
    نوشته شده توسط رضا عربلو در بخش WPF
    پاسخ: 13
    آخرین پست: جمعه 04 اردیبهشت 1388, 10:32 صبح

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •