我使用以下代码发送电子邮件:
private void button1_Click(object sender, EventArgs e)
{
MailMessage msg = new MailMessage();
msg.To.Add("ToEmail");
msg.From = new MailAddress("From Email", "Display Name", Encoding.UTF8);
msg.Subject = "This is a simple test";
msg.Body = "This is test";
msg.SubjectEncoding = Encoding.UTF8;
msg.IsBodyHtml = false;
msg.Priority = MailPriority.High;
SmtpClient client = new SmtpClient();
client.Credentials = new NetworkCredential("Display name", "password");
client.Port = 465;
client.UseDefaultCredentials = false;
client.Host = "smtp.gmail.com";
client.EnableSsl = true;
try
{
client.SendAsync("From Email", "", msg.Subject, msg.Body, "test message1");
MessageBox.Show("Sent");
}
catch (Exception ex)
{
MessageBox.Show(ex.ToString());
}
}
代码本身似乎工作正常。无论如何,我没有在电子邮件中收到任何文字,但提供了正文的文字。
这意味着我收到了一封空电子邮件。
答案 0 :(得分:0)
看来send async期望一个消息对象作为它的第一个参数。
https://msdn.microsoft.com/en-us/library/x5x13z6h%28v=vs.110%29.aspx
Microsoft的这个示例显示了一个与您的代码不同的精确演示。
https://msdn.microsoft.com/en-us/library/system.net.mail.smtpclient%28v=vs.110%29.aspx