Hi Guys, I'm quickl writing a little application which sends an email via SMTP and has the option to add a attachment. This is working fine however, When I went to send a email without attaching a file the Error Message I get is the following "The Parameter 'fileName' cannot be an empty string. Parameter: fileName"
I can understand that the system is expecting there to be a file to link (which does work when wanting to attach a file)
but I'm not to sure where to add the conditioning so that the attach method would only be called IF the 'Attach File' button is clicked.
Below is the Code I have so Far...
Code:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Net.Mail;
using System.Collections;
using System.Web;
namespace SendEmail
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void label2_Click(object sender, EventArgs e)
{
}
private void Form1_Load(object sender, EventArgs e)
{
textBox1.Enabled = false;
//Lists Support Teams in DropDown Menu
ArrayList supportTeam = new ArrayList();
supportTeam.Add("Technical Support");
supportTeam.Add("Software Support");
foreach (string child in supportTeam)
{
comboBox1.Items.Add(child);
}
}
private void Send_Click(object sender, EventArgs e)
{
try
{
SmtpClient client = new SmtpClient("smtp.********.com");
MailMessage message = new MailMessage("************@********.com", "****.*******@********.com");
message.Body = " \nDescription:\n "+ contentBox.Text + "\n\n\nCompany Name: " + compName.Text + "\nCustomer Contact: " + personName.Text;
Attachment data = new Attachment(textBox1.Text);
message.Attachments.Add(data);
client.Credentials = new System.Net.NetworkCredential("********.*******@*******.com", "*********");
client.EnableSsl = true;
client.Port = Convert.ToInt32("25");
if (comboBox1.SelectedItem == "Technical Support".ToString())
{
message.Subject = "Tech Support Issue from Qwik Tickets";
}
else if (comboBox1.SelectedItem == "Software Support".ToString())
{
message.Subject = "Software Support Issue from Qwik Tickets!";
}
client.Send(message);
MessageBox.Show(" Message Sent...\n\n A member of support team will be with you as soon as possible.");
Application.Exit();
}
catch (Exception ex)
{
MessageBox.Show("Cannot Send Message: " + ex.Message);
}
}
private void ClearFields_Click(object sender, EventArgs e)
{
}
private void Form1_Resize(object sender, EventArgs e)
{
if (this.WindowState == FormWindowState.Minimized)
{
notifyIcon1.Visible = true;
notifyIcon1.BalloonTipText = "I'm still here!";
this.Hide();
}
}
private void notifyIcon1_BalloonTipClicked(object sender, EventArgs e)
{
}
private void notifyIcon1_Click(object sender, EventArgs e)
{
notifyIcon1.Visible = false;
this.Show();
this.WindowState = FormWindowState.Normal;
}
private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
{
}
private void comboBox2_SelectedIndexChanged(object sender, EventArgs e)
{}
private void attach_Click(object sender, EventArgs e)
{
string Chosen_File = "";
openFD.Title = "Add a File...";
openFD.InitialDirectory = System.Environment.GetFolderPath(Environment.SpecialFolder.Personal);
openFD.FileName = "";
openFD.Filter = "JPEG Images|*.jpg|GIF Images|*.gif|PDF File|*.pdf";
openFD.ShowDialog();
Chosen_File = openFD.FileName;
textBox1.Text = Chosen_File.ToString();
}
private void compName_TextChanged(object sender, EventArgs e)
{
}
private void compName_Leave(object sender, EventArgs e)
{
if (compName.Text == "")
{
MessageBox.Show(" Please Fill in the Company Name.");
compName.Focus();
}
}
private void personName_Leave(object sender, EventArgs e)
{
if (personName.Text == "")
{
MessageBox.Show(" Please fill in your Name.");
personName.Focus();
}
}
}
}
any help would be realy great. Thanks.
Mark.