문제가 있습니다. .txt 목록에서 주소로 전자 메일을 보낼 수있는 프로그램을 코딩했습니다. 그것은 작동합니다 (저는 독일에 있습니다).하지만 다른 사람들에게는 (다른 나라에서는) 작동하지 않습니다. Gmail을 통해 이메일을 보내는 경우에만 작동합니다. 어떤 도움이 필요합니까? 한 가지 이유를 들어,Gmail을 통해서만 Hotmail을 통해 이메일을 보낼 수 없습니다.
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void cmdDistribute_Click(object sender, EventArgs e)
{
FileStream fs;
StreamReader sr;
if (Receiverlist.Text == "")
{
MessageBox.Show("Please type in the path of the list with the receiver! (.txt)", "ERROR : CANT FIND RECEIVERLIST!", MessageBoxButtons.OK, MessageBoxIcon.Error);
return;
}
fs = new FileStream(Receiverlist.Text, FileMode.Open);
sr = new StreamReader(fs);
string zeile;
if (senderID.Text == "")
{
MessageBox.Show("Please type in your login information!", "ERROR : NO EMAIL ADDRESS!");
fs.Close();
return;
}
else if (SenderPassword.Text == "")
{
MessageBox.Show("Please type in your login information!", "ERROR : NO PASSWORD!");
fs.Close();
return;
}
MessageBox.Show("While sending the emails this programm won´t response till it has send \nall emails! This could take a while, so please be patient...", "ALERT", MessageBoxButtons.OK, MessageBoxIcon.Warning);
string mailProvider = "";
int port = 0;
try
{
if (ProviderGmail.Checked)
{
mailProvider = "smtp.gmail.com";
port = 587;
}
else if (providerHotmail.Checked)
{
mailProvider = "smtp.live.com";
port = 587;
}
}
catch (Exception ex)
{
MessageBox.Show("Can´t connect to the GMail/Hotmail server. \n Please contact TheFlash on skype!", "ERROR : SMTPSERVER", MessageBoxButtons.OK, MessageBoxIcon.Error);
fs.Close();
return;
}
if (EmailSubject.Text == "")
{
MessageBox.Show("Please type in the subject of the email!.", "ERROR : EMPTY SUBJECT", MessageBoxButtons.OK, MessageBoxIcon.Error);
fs.Close();
return;
}
int n = 1;
while (sr.Peek() != -1)
{
zeile = sr.ReadLine();
try
{
System.Net.Mail.MailAddress DistributorMail = new System.Net.Mail.MailAddress(senderID.Text);
System.Net.Mail.MailAddress Receiver = new System.Net.Mail.MailAddress(zeile);
System.Net.Mail.MailMessage email = new System.Net.Mail.MailMessage(DistributorMail, Receiver);
email.Subject = EmailSubject.Text;
email.Body = EmailBody.Text;
System.Net.Mail.SmtpClient client = new System.Net.Mail.SmtpClient(mailProvider,port);
client.EnableSsl = true;
client.UseDefaultCredentials = false;
client.Credentials = new System.Net.NetworkCredential(senderID.Text, SenderPassword.Text);
if (checkBox1.Checked)
{
if (EmailAttachment.Text == "")
{
MessageBox.Show("Please type in the path of your attachment!.", "ERROR : EMPTY ATTACHMENT PATH", MessageBoxButtons.OK, MessageBoxIcon.Error);
fs.Close();
return;
}
else
{
MessageBox.Show("If you add an attachment to your mail, it will take longer to send it!", "WARNING", MessageBoxButtons.OK, MessageBoxIcon.Warning);
email.Attachments.Add(new System.Net.Mail.Attachment(EmailAttachment.Text));
}
}
else
{
EmailAttachment.Enabled = false;
}
try
{
client.Send(email);
label9.Text = "Emails sent : " + n;
n = n + 1;
if (sr.Peek() == -1)
MessageBox.Show("Finished!", "TheFlash´s Email Distributor", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
}
catch (Exception Ex)
{
label9.Text = "Couldn´t send the emails!";
fs.Close();
return;
}
}
catch (Exception ex)
{
MessageBox.Show("This is not an valid email address.", "ERROR : WRONG EMAIL FORMAT", MessageBoxButtons.OK, MessageBoxIcon.Error);
fs.Close();
return;
}
}
fs.Close();
return;
}
private void cmdExit_Click(object sender, EventArgs e)
{
Close();
}
private void cmdAbout_Click(object sender, EventArgs e)
{
new AboutBox1().Show();
}
}
당신은 TLS하거나 기본 SSL과 연결 있습니까 ? –
제목을 편집 한 이유를 이해하려면 [이 대답] (http://meta.stackexchange.com/a/130208/213671)을 읽으십시오. – gunr2171
@MikePrecup은 기본 SSL로 연결합니다. 코드 맨에서 ... – iAmFastAndYou