我没有依赖我的主机发送电子邮件,而是考虑使用我的Gmail帐户发送电子邮件.这些电子邮件是我在节目中播放的乐队的个性化电子邮件.有可能吗?
一定要使用System.Net.Mail
,而不是弃用System.Web.Mail
.使用SSL System.Web.Mail
是一个混乱的hacky扩展.
using System.Net; using System.Net.Mail; var fromAddress = new MailAddress("from@gmail.com", "From Name"); var toAddress = new MailAddress("to@example.com", "To Name"); const string fromPassword = "fromPassword"; const string subject = "Subject"; const string body = "Body"; var smtp = new SmtpClient { Host = "smtp.gmail.com", Port = 587, EnableSsl = true, DeliveryMethod = SmtpDeliveryMethod.Network, UseDefaultCredentials = false, Credentials = new NetworkCredential(fromAddress.Address, fromPassword) }; using (var message = new MailMessage(fromAddress, toAddress) { Subject = subject, Body = body }) { smtp.Send(message); }
以上答案不起作用.您必须设置DeliveryMethod = SmtpDeliveryMethod.Network
或它将返回" 客户端未经过身份验证 "错误.暂停时间总是一个好主意.
修改后的代码:
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); }
对于"从服务器"工作的其他答案,首先打开访问权限以获取 Gmail帐户中安全性较低的应用程序.
看起来最近谷歌改变了它的安全政策.评分最高的答案不再有效,直到您按照此处所述更改帐户设置:https://support.google.com/accounts/answer/6010255?hl = zh-CN
截至2016年3月,谷歌再次更改了设置位置!
这是发送附带附件的电子邮件..简单而简短..
来源:http://coding-issues.blogspot.in/2012/11/sending-email-with-attachments-from-c.html
using System.Net; using System.Net.Mail; public void email_send() { MailMessage mail = new MailMessage(); SmtpClient SmtpServer = new SmtpClient("smtp.gmail.com"); mail.From = new MailAddress("your mail@gmail.com"); mail.To.Add("to_mail@gmail.com"); mail.Subject = "Test Mail - 1"; mail.Body = "mail with attachment"; System.Net.Mail.Attachment attachment; attachment = new System.Net.Mail.Attachment("c:/textfile.txt"); mail.Attachments.Add(attachment); SmtpServer.Port = 587; SmtpServer.Credentials = new System.Net.NetworkCredential("your mail@gmail.com", "your password"); SmtpServer.EnableSsl = true; SmtpServer.Send(mail); }
Google可能阻止某些不使用现代安全标准的应用或设备尝试登录.由于这些应用和设备更易于破解,因此阻止它们有助于确保您的帐户更安全.
一些不支持最新安全标准的应用程序示例包括:
iOS或更低版本的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#中,您可以使用以下代码:
using (MailMessage mail = new MailMessage()) { mail.From = new MailAddress("email@gmail.com"); mail.To.Add("somebody@domain.com"); mail.Subject = "Hello World"; mail.Body = "Hello
"; 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); } }
这是我的版本:" 使用Gmail在C#中发送电子邮件 ".
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(); } } } }
为了让我能够工作,我必须启用我的Gmail帐户才能让其他应用程序获得访问权限.这与"启用安全性较低的应用程序"进行,也通过此链接: https://accounts.google.com/b/0/DisplayUnlockCaptcha
我希望这段代码能正常工作.你可以尝试一下.
// 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);
包括这个,
using System.Net.Mail;
然后,
MailMessage sendmsg = new MailMessage(SendersAddress, ReceiversAddress, subject, body); SmtpClient client = new SmtpClient("smtp.gmail.com"); client.Port = Convert.ToInt16("587"); client.Credentials = new System.Net.NetworkCredential("mail-id@gmail.com","password"); client.EnableSsl = true; client.Send(sendmsg);
来源:在ASP.NET C中发送电子邮件#
下面是使用C#发送邮件的示例工作代码,在下面的示例中,我使用的是谷歌的smtp服务器.
代码非常自我解释,用您的电子邮件和密码值替换电子邮件和密码.
public void SendEmail(string address, string subject, string message) { string email = "yrshaikh.mail@gmail.com"; string password = "put-your-GMAIL-password-here"; var loginInfo = new NetworkCredential(email, password); var msg = new MailMessage(); var smtpClient = new SmtpClient("smtp.gmail.com", 587); msg.From = new MailAddress(email); msg.To.Add(new MailAddress(address)); msg.Subject = subject; msg.Body = message; msg.IsBodyHtml = true; smtpClient.EnableSsl = true; smtpClient.UseDefaultCredentials = false; smtpClient.Credentials = loginInfo; smtpClient.Send(msg); }
如果您想发送背景电子邮件,请执行以下操作
public void SendEmail(string address, string subject, string message) { Thread threadSendMails; threadSendMails = new Thread(delegate() { //Place your Code here }); threadSendMails.IsBackground = true; threadSendMails.Start(); }
并添加命名空间
using System.Threading;