Невозможно отправить SMTP сообщения электронной почты в C # с VMware VM Win 7 - PullRequest
1 голос
/ 22 апреля 2010

VMware может пропинговать сервер gmail.

образец кода


            MailMessage mail = new MailMessage();
            SmtpClient SmtpServer = new SmtpClient("smtp.gmail.com");
            mail.From = new MailAddress("fromxyz@gmail.com");
            mail.To.Add("to");
            mail.Subject = "subjct";
            mail.Body = "email body!!";

            System.Net.Mail.Attachment attachment;
            attachment = new System.Net.Mail.Attachment("filename.extension");
            mail.Attachments.Add(attachment);

            SmtpServer.Port = 587;
            SmtpServer.Credentials = new System.Net.NetworkCredential("email id", "password");
            SmtpServer.EnableSsl = true;

            SmtpServer.Send(mail);

Я понял, что это как-то связано с открытыми портами на vmware, некоторые проблемы с сетью, но я просто не могу это понять. Пожалуйста, дайте знать, что я делаю неправильно. Спасибо - Egon


обновление: изображение: альтернативный текст http://www.freeimagehosting.net/uploads/0dab04e531.png


обновление 2:

вот детали исключения:

Исключение System.Net.Mail.SmtpException было обработано Сообщение = «Ошибка отправки почты». Источник = «Система» Трассировки стека: в System.Net.Mail.SmtpClient.Send (сообщение MailMessage)

   at Search_Main.Rating_Result.sendIt() in C:\Users\cloud\Desktop\demo\demo\Search_Main0\Search_Main\Search_Main\Rating_Result.xaml.cs:line 98
   at Search_Main.Rating_Result.ShareTOAll(Object sender, RoutedEventArgs e) in C:\Users\cloud\Desktop\demo\demo\Search_Main0\Search_Main\Search_Main\Rating_Result.xaml.cs:line 143
   at System.Windows.RoutedEventHandlerInfo.InvokeHandler(Object target, RoutedEventArgs routedEventArgs)
   at System.Windows.EventRoute.InvokeHandlersImpl(Object source, RoutedEventArgs args, Boolean reRaised)
   at System.Windows.UIElement.RaiseEventImpl(DependencyObject sender, RoutedEventArgs args)
   at System.Windows.UIElement.RaiseEvent(RoutedEventArgs e)
   at System.Windows.Controls.Primitives.ButtonBase.OnClick()
   at System.Windows.Controls.Button.OnClick()
   at System.Windows.Controls.Primitives.ButtonBase.OnMouseLeftButtonUp(MouseButtonEventArgs e)
   at System.Windows.UIElement.OnMouseLeftButtonUpThunk(Object sender, MouseButtonEventArgs e)
   at System.Windows.Input.MouseButtonEventArgs.InvokeEventHandler(Delegate genericHandler, Object genericTarget)
   at System.Windows.RoutedEventArgs.InvokeHandler(Delegate handler, Object target)
   at System.Windows.RoutedEventHandlerInfo.InvokeHandler(Object target, RoutedEventArgs routedEventArgs)
   at System.Windows.EventRoute.InvokeHandlersImpl(Object source, RoutedEventArgs args, Boolean reRaised)
   at System.Windows.UIElement.ReRaiseEventAs(DependencyObject sender, RoutedEventArgs args, RoutedEvent newEvent)
   at System.Windows.UIElement.CrackMouseButtonEventAndReRaiseEvent(DependencyObject sender, MouseButtonEventArgs e)
   at System.Windows.UIElement.OnMouseUpThunk(Object sender, MouseButtonEventArgs e)
   at System.Windows.Input.MouseButtonEventArgs.InvokeEventHandler(Delegate genericHandler, Object genericTarget)
   at System.Windows.RoutedEventArgs.InvokeHandler(Delegate handler, Object target)
   at System.Windows.RoutedEventHandlerInfo.InvokeHandler(Object target, RoutedEventArgs routedEventArgs)
   at System.Windows.EventRoute.InvokeHandlersImpl(Object source, RoutedEventArgs args, Boolean reRaised)
   at System.Windows.UIElement.RaiseEventImpl(DependencyObject sender, RoutedEventArgs args)
   at System.Windows.UIElement.RaiseEvent(RoutedEventArgs args, Boolean trusted)
   at System.Windows.Input.InputManager.ProcessStagingArea()
   at System.Windows.Input.InputManager.ProcessInput(InputEventArgs input)
   at System.Windows.Input.InputProviderSite.ReportInput(InputReport inputReport)
   at System.Windows.Interop.HwndMouseInputProvider.ReportInput(IntPtr hwnd, InputMode mode, Int32 timestamp, RawMouseActions actions, Int32 x, Int32 y, Int32 wheel)
   at System.Windows.Interop.HwndMouseInputProvider.FilterMessage(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
   at System.Windows.Interop.HwndSource.InputFilterMessage(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
   at MS.Win32.HwndWrapper.WndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
   at MS.Win32.HwndSubclass.DispatcherCallbackOperation(Object o)
   at System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Boolean isSingleParameter)
   at System.Windows.Threading.ExceptionWrapper.TryCatchWhen(Object source, Delegate callback, Object args, Boolean isSingleParameter, Delegate catchHandler)
   at System.Windows.Threading.Dispatcher.WrappedInvoke(Delegate callback, Object args, Boolean isSingleParameter, Delegate catchHandler)
   at System.Windows.Threading.Dispatcher.InvokeImpl(DispatcherPriority priority, TimeSpan timeout, Delegate method, Object args, Boolean isSingleParameter)
   at System.Windows.Threading.Dispatcher.Invoke(DispatcherPriority priority, Delegate method, Object arg)
   at MS.Win32.HwndSubclass.SubclassWndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam)
   at MS.Win32.UnsafeNativeMethods.DispatchMessage(MSG& msg)
   at System.Windows.Threading.Dispatcher.PushFrameImpl(DispatcherFrame frame)
   at System.Windows.Threading.Dispatcher.PushFrame(DispatcherFrame frame)
   at System.Windows.Threading.Dispatcher.Run()
   at System.Windows.Application.RunDispatcher(Object ignore)
   at System.Windows.Application.RunInternal(Window window)
   at System.Windows.Application.Run(Window window)
   at System.Windows.Application.Run()
   at Search_Main.App.Main() in C:\Users\cloud\Desktop\demo\demo\Search_Main0\Search_Main\Search_Main\obj\Debug\App.g.cs:line 0
   at System.AppDomain._nExecuteAssembly(Assembly assembly, String[] args)
   at System.AppDomain.ExecuteAssembly(String assemblyFile, Evidence assemblySecurity, String[] args)
   at Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly()
   at System.Threading.ThreadHelper.ThreadStart_Context(Object state)
   at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
   at System.Threading.ThreadHelper.ThreadStart()

** InnerException: System.Net.WebException Сообщение = «Невозможно подключиться к удаленному серверу»

   Source="System"**
   StackTrace:
        at System.Net.ServicePoint.GetConnection(PooledStream PooledStream, Object owner, Boolean async, IPAddress& address, Socket& abortSocket, Socket& abortSocket6, Int32 timeout)
        at System.Net.PooledStream.Activate(Object owningObject, Boolean async, Int32 timeout, GeneralAsyncDelegate asyncCallback)
        at System.Net.PooledStream.Activate(Object owningObject, GeneralAsyncDelegate asyncCallback)
        at System.Net.ConnectionPool.GetConnection(Object owningObject, GeneralAsyncDelegate asyncCallback, Int32 creationTimeout)
        at System.Net.Mail.SmtpConnection.GetConnection(String host, Int32 port)
        at System.Net.Mail.SmtpTransport.GetConnection(String host, Int32 port)
        at System.Net.Mail.SmtpClient.GetConnection()
        at System.Net.Mail.SmtpClient.Send(MailMessage message)


   **InnerException: System.Net.Sockets.SocketException
        Message="No connection could be made because the target machine actively refused it 74.125.95.109:587"
        Source="System"**
        ErrorCode=10061
        NativeErrorCode=10061
        StackTrace:
             at System.Net.Sockets.Socket.DoConnect(EndPoint endPointSnapshot, SocketAddress socketAddress)
             at System.Net.Sockets.Socket.InternalConnect(EndPoint remoteEP)
             at System.Net.ServicePoint.ConnectSocketInternal(Boolean connectFailure, Socket s4, Socket s6, Socket& socket, IPAddress& address, ConnectSocketState state, IAsyncResult asyncResult, Int32 timeout, Exception& exception)
        InnerException: 

Ответы [ 2 ]

2 голосов
/ 22 апреля 2010

2 быстрых вещи:

  1. проверка внутренних исключений для брошенного исключения.

  2. Включить ведение журнала на объекте System.Net.Mail. Увидеть http://systemnetmail.com/faq/4.10.aspx

1 голос
/ 22 апреля 2010

Если порт 587 не работает (это порт для TLS / STARTTLS), попробуйте 465 (Порт для SSL).

http://mail.google.com/support/bin/answer.py?hl=en&answer=13287

...