using System;
using System.Net;
using System.Net.Mail;
namespace SendMailViaGmail
{
class Program
{
static void Main(string[] args)
{
//Specify senders gmail address
string SendersAddress = "Sendersaddress@gmail.com";
//Specify The Address You want to sent Email To(can be any valid email address)
string ReceiversAddress = "ReceiversAddress@yahoo.com";
//Specify The password of gmial account u are using to sent mail(pw of sender@gmail.com)
const string SendersPassword = "Password";
//Write the subject of ur mail
const string subject = "Testing";
//Write the contents of your mail
const string body = "Hi This Is my Mail From Gmail";
try
{
//we will use Smtp client which allows us to send email using SMTP Protocol
//i have specified the properties of SmtpClient smtp within{}
//gmails smtp server name is smtp.gmail.com and port number is 587
SmtpClient smtp = new SmtpClient
{
Host = "smtp.gmail.com",
Port = 587,
EnableSsl = true,
DeliveryMethod = SmtpDeliveryMethod.Network,
Credentials = new NetworkCredential(SendersAddress, SendersPassword),
Timeout = 3000
};
//MailMessage represents a mail message
//it is 4 parameters(From,TO,subject,body)
MailMessage message = new MailMessage(SendersAddress, ReceiversAddress, subject, body);
/*WE use smtp sever we specified above to send the message(MailMessage message)*/
smtp.Send(message);
Console.WriteLine("Message Sent Successfully");
Console.ReadKey();
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
Console.ReadKey();
}
}
}
}
using (MailMessage mail = new MailMessage())
{
mail.From = new MailAddress("email@gmail.com");
mail.To.Add("somebody@domain.com");
mail.Subject = "Hello World";
mail.Body = "<h1>Hello</h1>";
mail.IsBodyHtml = true;
mail.Attachments.Add(new Attachment("C:\\file.zip"));
using (SmtpClient smtp = new SmtpClient("smtp.gmail.com", 587))
{
smtp.Credentials = new NetworkCredential("email@gmail.com", "password");
smtp.EnableSsl = true;
smtp.Send(mail);
}
}
3
我希望这段代码能正常工作 . 你可以尝试一下 .
// Include this.
using System.Net.Mail;
string fromAddress = "xyz@gmail.com";
string mailPassword = "*****"; // Mail id password from where mail will be sent.
string messageBody = "Write the body of the message here.";
// Create smtp connection.
SmtpClient client = new SmtpClient();
client.Port = 587;//outgoing port for the mail.
client.Host = "smtp.gmail.com";
client.EnableSsl = true;
client.Timeout = 10000;
client.DeliveryMethod = SmtpDeliveryMethod.Network;
client.UseDefaultCredentials = false;
client.Credentials = new System.Net.NetworkCredential(fromAddress, mailPassword);
// Fill the mail form.
var send_mail = new MailMessage();
send_mail.IsBodyHtml = true;
//address from where mail will be sent.
send_mail.From = new MailAddress("from@gmail.com");
//address to which mail will be sent.
send_mail.To.Add(new MailAddress("to@example.com");
//subject of the mail.
send_mail.Subject = "put any subject here";
send_mail.Body = messageBody;
client.Send(send_mail);
980
试试这个,
private void button1_Click(object sender, EventArgs e)
{
try
{
MailMessage mail = new MailMessage();
SmtpClient SmtpServer = new SmtpClient("smtp.gmail.com");
mail.From = new MailAddress("your_email_address@gmail.com");
mail.To.Add("to_address");
mail.Subject = "Test Mail";
mail.Body = "This is for testing SMTP mail from GMAIL";
SmtpServer.Port = 587;
SmtpServer.Credentials = new System.Net.NetworkCredential("username", "password");
SmtpServer.EnableSsl = true;
SmtpServer.Send(mail);
MessageBox.Show("mail Send");
}
catch (Exception ex)
{
MessageBox.Show(ex.ToString());
}
}
using System;
using System.Net;
using System.Net.Mail;
namespace SendMailViaGmail
{
class Program
{
static void Main(string[] args)
{
//Specify senders gmail address
string SendersAddress = "Sendersaddress@gmail.com";
//Specify The Address You want to sent Email To(can be any valid email address)
string ReceiversAddress = "ReceiversAddress@yahoo.com";
//Specify The password of gmial account u are using to sent mail(pw of sender@gmail.com)
const string SendersPassword = "Password";
//Write the subject of ur mail
const string subject = "Testing";
//Write the contents of your mail
const string body = "Hi This Is my Mail From Gmail";
try
{
//we will use Smtp client which allows us to send email using SMTP Protocol
//i have specified the properties of SmtpClient smtp within{}
//gmails smtp server name is smtp.gmail.com and port number is 587
SmtpClient smtp = new SmtpClient
{
Host = "smtp.gmail.com",
Port = 587,
EnableSsl = true,
DeliveryMethod = SmtpDeliveryMethod.Network,
Credentials = new NetworkCredential(SendersAddress, SendersPassword),
Timeout = 3000
};
//MailMessage represents a mail message
//it is 4 parameters(From,TO,subject,body)
MailMessage message = new MailMessage(SendersAddress, ReceiversAddress, subject, body);
/*WE use smtp sever we specified above to send the message(MailMessage message)*/
smtp.Send(message);
Console.WriteLine("Message Sent Successfully");
Console.ReadKey();
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
Console.ReadKey();
}
}
}
}
76
上述答案不起作用 . 您必须设置 DeliveryMethod = SmtpDeliveryMethod.Network ,否则它将返回“ client was not authenticated ”错误 . 暂停超时总是一个好主意 .
修改后的代码:
using System.Net.Mail;
using System.Net;
var fromAddress = new MailAddress("from@gmail.com", "From Name");
var toAddress = new MailAddress("to@yahoo.com", "To Name");
const string fromPassword = "password";
const string subject = "test";
const string body = "Hey now!!";
var smtp = new SmtpClient
{
Host = "smtp.gmail.com",
Port = 587,
EnableSsl = true,
DeliveryMethod = SmtpDeliveryMethod.Network,
Credentials = new NetworkCredential(fromAddress.Address, fromPassword),
Timeout = 20000
};
using (var message = new MailMessage(fromAddress, toAddress)
{
Subject = subject,
Body = body
})
{
smtp.Send(message);
}
22 回答
用这种方式
别忘掉这个 :
这是发送带附件的电子邮件..简单和简短..
来源:http://coding-issues.blogspot.in/2012/11/sending-email-with-attachments-from-c.html
http://www.systemnetmail.com/可能是一个专门用于单个.NET命名空间的最荒谬的完整站点......但是它有一些你想知道的关于通过.NET发送邮件的一切,无论是ASP.NET还是桌面 .
http://www.systemwebmail.com/是帖子中的原始URL,但不应用于.NET 2.0及更高版本 .
如果您想发送背景电子邮件,请执行以下操作
并添加命名空间
这是我的版本:“Send Email In C # Using Gmail” .
以下是一种从web.config发送邮件和获取凭据的方法:
和web.config中的相应部分:
为了让我能够工作,我必须启用我的Gmail帐户才能让其他应用程序获得访问权限 . 使用此链接使用"enable less secure apps"和 also 完成此操作:https://accounts.google.com/b/0/DisplayUnlockCaptcha
Google可能阻止某些不使用现代安全标准的应用或设备尝试登录 . 由于这些应用和设备更容易入侵,因此阻止它们有助于确保您的帐户更安全 .
一些不支持最新安全标准的应用程序示例包括:
适用于iOS 6或更低版本的iPhone或iPad上的Mail应用程序
8.1版本之前Windows手机上的Mail应用程序
某些桌面邮件客户端,如Microsoft Outlook和Mozilla Thunderbird
因此,您必须在Google帐户中启用 Less Secure Sign-In .
登录Google帐户后,请转到:
https://myaccount.google.com/lesssecureapps
要么
https://www.google.com/settings/security/lesssecureapps
在C#中,您可以使用以下代码:
我希望这段代码能正常工作 . 你可以尝试一下 .
试试这个,
请务必使用
System.Net.Mail
,而不是已弃用的System.Web.Mail
. 使用System.Web.Mail
执行SSL是一个混乱的hacky扩展 .Source :Send email in ASP.NET C#
下面是使用C#发送邮件的示例工作代码,在下面的示例中,我使用的是谷歌的smtp服务器 .
代码非常自我解释,用您的电子邮件和密码值替换电子邮件和密码 .
一个提示!检查发件人收件箱,也许您需要允许不太安全的应用 . 见:https://www.google.com/settings/security/lesssecureapps
在Gmail / Outlook.com电子邮件中更改发件人:
为防止欺骗 - Gmail / Outlook.com不允许您从任意用户帐户名发送 .
如果您的发件人数量有限,则可以按照这些说明操作,然后将
From
字段设置为此地址:Sending mail from a different address如果您想要从任意电子邮件地址(例如用户输入电子邮件的网站上的反馈表单,而您不希望他们直接通过电子邮件发送给您)发送关于您可以做的最好的信息:
这样您就可以在电子邮件帐户中点击“回复”,在反馈页面上回复您乐队的粉丝,但他们不会收到您的实际电子邮件,这可能会导致大量的垃圾邮件 .
如果您处于受控环境中这很好用,但请注意我已经看到一些电子邮件客户端发送到起始地址,即使指定了回复(我不知道哪个) .
上述答案不起作用 . 您必须设置
DeliveryMethod = SmtpDeliveryMethod.Network
,否则它将返回“ client was not authenticated ”错误 . 暂停超时总是一个好主意 .修改后的代码:
试试这个
对我来说问题是我的 password had a blackslash "" ,我复制粘贴而没有意识到它会导致问题 .
从another answer复制,上述方法有效但gmail始终用实际的发送gmail帐户替换"from"和"reply to"电子邮件 . 显然有一个工作:
http://karmic-development.blogspot.in/2013/10/send-email-from-aspnet-using-gmail-as.html
“3.在”帐户“标签中,单击”添加您拥有的其他电子邮件地址“链接,然后验证”
或者可能this
更新3:读者Derek Bennett说:“解决方案是进入你的Gmail设置:帐户和”默认“帐户而不是你的Gmail帐户 . 这将导致gmail用默认帐户的电子邮件重新写入”发件人“字段地址是 . “
对于gmail帐户中的其他答案"from a server" first Turn On Access for less secure apps .
看起来最近谷歌改变了它的安全政策 . 评分最高的答案不再有效,直到您按照此处所述更改帐户设置:https://support.google.com/accounts/answer/6010255?hl=en-GB
As of March 2016, google changed the setting location again!
包括这个,
然后,
我有同样的问题,但它通过转到gmail的安全设置和 Allowing Less Secure apps 解决了 . Domenic&Donny的代码可以使用,但前提是你启用了该设置
如果您已登录(对Google),则可以关注this链接并切换 "Turn on" 以获取 "Access for less secure apps"