2013-02-13 8 views
0

Я создал почтовую программу, которая отправит электронное письмо в мою учетную запись. Я установил System.Net, System.Net.Mail. Я работаю на некоторых компьютерах (мой главный), но всякий раз, когда я пытаюсь сделать другой компьютер, он не отправляет сообщение. Я его окружил в try, catch блоки, и у меня есть свой набор переменных исключения.Mail сообщение не отправляю. Программа не отвечает

Код:

using System; 
using System.Collections.Generic; 
using System.ComponentModel; 
using System.Data; 
using System.Drawing; 
using System.Linq; 
using System.Text; 
using System.Threading.Tasks; 
using System.Windows.Forms; 
using System.Net; 
using System.Net.Mail; 
using System.Threading; 
using System.IO; 
using System.Windows; 
using System.Text; 
using System.Collections.Generic; 

namespace WindowsFormsApplication3 
{ 
public partial class trinate : Form 
{ 
    public trinate() 
    { 
     InitializeComponent(); 
    } 

    private void MenuClose_Click(object sender, EventArgs e) 
    { 
     Application.Exit(); 
    } 

    private void radioButton1_CheckedChanged(object sender, EventArgs e) 
    { 
     if (textBox1.Enabled == false) 
     { 
      textBox1.Enabled = true; 
     } 
     else { 
      textBox1.Enabled = false; 
      textBox1.Text = "some text"; 
     } 

    } 

    private void radioButton2_CheckedChanged(object sender, EventArgs e) 
    { 
     if (textBox2.Enabled == false) 
     { 
      textBox2.Enabled = true; 
     } 
     else 
     { 
      textBox2.Enabled = false; 
      textBox2.Text = "some more text"; 
     } 
    } 

    private void button1_Click(object sender, EventArgs e) 
    { 
     progressBar1.Maximum = 100; 
     progressBar1.Value = 0; 
     progressBar1.Minimum = 0; 
     if (authenticate(textBox1.Text) == true && email1.TextLength != 0 && accPass.TextLength != 0) 
     { 
      if (radioButton1.Checked == true || radioButton2.Checked == true) 
      { 
       SmtpClient client = new SmtpClient("smtp.comcast.net", 25); 
       client.Credentials = new NetworkCredential(); 
       MailMessage msg = new MailMessage(); 
       msg.From = new MailAddress(email1.Text); 
       msg.To.Add(new MailAddress("my email")); 
       msg.Subject = "mailmessage"; 
       msg.Body = "body text"; 
       try 
       { 
        client.Send(msg); 
        ProgRun(true); 
       } 
       catch (Exception err) 
       { 
        MessageBox.Show("Unable to create valid connection! ", "Fatal Error", MessageBoxButtons.RetryCancel, MessageBoxIcon.Error); 
        progressBar1.Value = 0; 
        ProgRun(false); 
       } 
      } 
      else 
      { 
       MessageBox.Show("One or more values not entered or correct", "Error!", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); 
      } 
     } 
     else { 
      MessageBox.Show("One or more values not entered or correct", "Error!", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); 
     } 
    } 

    private void button3_Click(object sender, EventArgs e) 
    { 

    } 

    private Boolean authenticate(string code) { 
     //This is specific to my application. Nothing to do with mail if (code == "A1C4M98") 
     { 
      return true; 
     } 
     else { 
      return false; 
     } 
    } 

    private void textBox1_TextChanged(object sender, EventArgs e) 
    { 
     if (authenticate(textBox1.Text) != true) 
     { 
      errorProvider1.SetError(textBox1, "string!"); 
     } 
     else { 
      errorProvider1.SetError(textBox1, ""); 
     } 
    } 

    private void checkBox1_CheckedChanged(object sender, EventArgs e) 
    { 
     if (checkBox1.Checked == true) 
     { 
      accPass.PasswordChar = char.MinValue; 
     } 
     else { 
      accPass.PasswordChar = Convert.ToChar("*"); 
     } 
    } 

    private void ProgRun(Boolean ch) { 

     if (ch == true) 
     { 
      for (int i = 0; i <= 100; i++) 
      { 
       progressBar1.Value = i; 
       Thread.Sleep(100); 
       if (progressBar1.Value == 100) 
       { 
        MessageBox.Show("Valid Key Created!", "Success", MessageBoxButtons.OK, MessageBoxIcon.Asterisk); 

        break; 
       } 

      } 
     } 
    } 

    private void button2_Click(object sender, EventArgs e) 
    { 
     if (progressBar1.Value == 100) 
     { 
      ProgRun1(true); 
     } 
     else 
     { 
      MessageBox.Show("text", "Error", MessageBoxButtons.OKCancel, MessageBoxIcon.Error); 
     } 
    } 

    private void ProgRun1(Boolean ch) 
    { 

     if (ch == true) 
     { 
      for (int i = 0; i <= 100; i++) 
      { 
       progressBar1.Value = i; 
       Thread.Sleep(100); 
       if (progressBar1.Value == 100) 
       { 
        MessageBox.Show("Process Completed!", "Success", MessageBoxButtons.OK, MessageBoxIcon.Asterisk); 
        break; 
       } 
      } 
      Application.Exit(); 
     } 
    } 

} 

} 
+1

Когда вы говорите, что оно не отправляет сообщение, означает ли это, что код выполняется успешно без каких-либо исключений, но вы никогда не получите его в своем почтовом ящике? – Ameen

+0

Вы действительно думаете, что нам нужно прочитать весь этот код, чтобы помочь вам? Попробуйте сузить свои вопросы до кода, необходимого для воспроизведения проблемы. –

+0

Кроме того, что вы имеете в виду: «У меня есть переменная переменной исключения»? –

ответ

1
msg.To.Add(new MailAddress("my email")); 

my email не действительный адрес электронной почты.

Обновлено:

Кроме того, необходимо имя пользователя и пароль для учетных данных.

client.Credentials = new NetworkCredential(username, password); 
+1

Я думаю, он, должно быть, изменил это, прежде чем публиковать вопрос, чтобы защитить его конфиденциальность. 'MailAddress' будет выдавать, если адрес находится в недопустимом формате. – Ameen

+0

Я никогда не думал об этом :) – Win

 Смежные вопросы

  • Нет связанных вопросов^_^