我无法理解为什么这段代码不起作用.我收到一条错误消息,指出无法分配属性
MailMessage mail = new MailMessage();
SmtpClient client = new SmtpClient();
client.Port = 25;
client.DeliveryMethod = SmtpDeliveryMethod.Network;
client.UseDefaultCredentials = false;
client.Host = "smtp.gmail.com";
mail.To = "user@hotmail.com"; // <-- this one
mail.From = "you@yourcompany.com";
mail.Subject = "this is a test email.";
mail.Body = "this is my test email body";
client.Send(mail);
Run Code Online (Sandbox Code Playgroud) 我正在使用以下代码发送电子邮件.代码在我的本地计算机中正常运行.但在生产服务器上我收到错误消息
var fromAddress = new MailAddress("mymailid@gmail.com");
var fromPassword = "xxxxxx";
var toAddress = new MailAddress("yourmailid@yourdoamain.com");
string subject = "subject";
string body = "body";
System.Net.Mail.SmtpClient smtp = new System.Net.Mail.SmtpClient
{
Host = "smtp.gmail.com",
Port = 587,
EnableSsl = true,
DeliveryMethod = System.Net.Mail.SmtpDeliveryMethod.Network,
UseDefaultCredentials = false,
Credentials = new NetworkCredential(fromAddress.Address, fromPassword)
};
using (var message = new MailMessage(fromAddress, toAddress)
{
Subject = subject,
Body = body
})
smtp.Send(message);
Run Code Online (Sandbox Code Playgroud)
在我的Gmail A/c上,我从生产服务器运行代码后收到了以下电子邮件
嗨,
最近有人使用您的密码尝试登录您的Google帐户mymailid@gmail.com.此人正在使用电子邮件,客户端或移动设备等应用程序.
如果这是一名试图访问您帐户的劫机者,我们会阻止登录尝试.请查看登录尝试的详细信息:
星期五,2014年1月3日13:56:08 UTC时间地址:xxx.xx.xx.xxx(abcd.net.)地点:Philadelphia PA,Philadelphia,PA,USA
如果您无法识别此登录尝试,则其他人可能会尝试访问您的帐户.您应该立即登录您的帐户并重置密码.
重设密码
如果是您并且您在访问帐户时遇到问题,请完成http://support.google.com/mail?p=client_login中列出的问题排查步骤
您诚挚的,Google帐户团队
出于某种原因," 通过Gmail发送.NET中的电子邮件 "既没有被接受的答案也没有其他任何一个对我有用.他们为什么不工作?
更新:我在另一个问题中尝试了所有答案(接受和否则),但没有一个能够奏效.
我想知道它是否适用于其他任何人,否则谷歌可能已经改变了一些事情(之前发生过).
当我尝试使用的代码片段时SmtpDeliveryMethod.Network,我会在Send(消息)上快速收到SmtpException.信息是
SMTP服务器需要安全连接或客户端未经过身份验证.
服务器响应是:
5.5.1需要验证.了解更多"< - 认真,它在那里结束.
更新:
这是我很久以前问过的一个问题,接受的答案是我在不同的项目中使用了很多次的代码.
我已经在这篇文章和其他EmailSender项目中采用了一些想法,在Codeplex上创建了一个EmailSender项目.它专为可测试性而设计,支持我最喜欢的SMTP服务,如GoDaddy和Gmail.
我正在使用我的Gmail帐户并smtp.gmail.com在我的网络应用程序中测试和发送电子邮件.当我的Gmail帐户启用双因素身份验证时,它无法发送电子邮件,但是当我关闭我的Gmail帐户的双因素身份验证时,该网络应用程序会成功发送电子邮件.感谢任何建议.
我想从我的应用程序发送一封电子邮件,我写了以下代码来发送邮件
MailMessage msg = new MailMessage();
msg.From = new MailAddress("mymailid");
msg.To.Add("receipientid");
msg.Subject = "test";
msg.Body = "Test Content";
msg.Priority = MailPriority.High;
SmtpClient client = new SmtpClient();
client.Credentials = new NetworkCredential("mymailid", "mypassword", "smtp.gmail.com");
client.Host = "smtp.gmail.com";
client.Port = 587;
client.DeliveryMethod = SmtpDeliveryMethod.Network;
client.EnableSsl = true;
client.UseDefaultCredentials = true;
client.Send(msg);
Run Code Online (Sandbox Code Playgroud)
我在localhost上运行它,所以我正在做什么错误发送它.
当我发送按钮时,它给出了一个错误
SMTP服务器需要安全连接或客户端未经过身份验证.服务器响应为:5.5.1需要身份验证.
Web.config文件中的代码
<appSettings>
<add key="webpages:Version" value="2.0.0.0" />
<add key="webpages:Enabled" value="false" />
<add key="PreserveLoginUrl" value="true" />
<add key="ClientValidationEnabled" value="true" />
<add key="UnobtrusiveJavaScriptEnabled" value="true" />
<add key="smtpServer" value="smtp.gmail.com" />
<add key="EnableSsl" value …Run Code Online (Sandbox Code Playgroud) 为了更好地保护您的用户,GMail和其他邮件提供商建议将我们的所有应用程序升级到OAuth 2.0.
我是对的,这意味着System.Net.Mail不再工作,我们需要使用另一个库MailKit吗?
一般来说,我试图了解如何发送电子邮件而不允许"访问不太安全的应用程序"?
因为我有System.Net.Mail.SmtpException: The SMTP server requires a secure connection or the client was not authenticated. The server response was: 5.5.1 Authentication Required.当smtpClient.Send(message);执行.
如果解决这个问题的唯一方法是使用MailKit,我认为这个问题将是一个很好的实用的逐步切换教程从System.Net.Mail使用MailKit和Google.Apis.Auth.OAuth2.我不知道可能会使用一般解决方案DotNetOpenAuth吗?
我的应用程序中有以下类,对应于向任何地址(gmail,yandex和其他人)发送电子邮件:
public class EmailSender
{
public void SendEmail(SmtpServerSettings serverSettings, SendEmailRequest emailRequest)
{
// Usually I have 587 port, SmtpServerName = smtp.gmail.com
_logger.Trace("Sending message with subject '{0}' using SMTP server {1}:{2}",
emailRequest.Subject,
serverSettings.SmtpServerName,
serverSettings.SmtpPort);
try
{
using …Run Code Online (Sandbox Code Playgroud) 我正在使用此答案中的以下代码通过Gmail在.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);
}
Run Code Online (Sandbox Code Playgroud)
提前致谢.
我正在编写一个通过有效的GMail用户ID和密码发送邮件的应用程序.
我只是想在我的Windows XP命令行上模拟SMTP连接,当我smtp.gmail.com在465端口telnet 时 - 我没有看到任何东西.带有标题的空白命令窗口Telnet smtp.gmail.com随光标打开.当我输入EHLO或通常的SMTP握手命令时,提示只是关闭.
我无法弄清楚什么是错的,在哪里.我尝试连接到587,它根本没有连接到telnet.任何人都可以澄清我是否做错了什么?
如何使用c#通过mvc-3 asp.net发送邮件?
我必须发一个忘记的密码,我该怎么办?我的代码如下.
型号代码..
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.ComponentModel.DataAnnotations;
namespace TelerikLogin.Models.ViewModels
{
public class ForgotPassword
{
public int user_id { get; set; }
public string user_login_name { get; set; }
public string user_password { get; set; }
[Required]
[Display(Name="Email Address : ")]
public string user_email_address { get; set; }
}
}
Run Code Online (Sandbox Code Playgroud)
控制器代码..
public ActionResult ForgotPassword()
{
return View();
}
[HttpPost]
public ActionResult ForgotPassword(string user_email_address)
{
SqlConnection conn = new SqlConnection(@"Data Source=.\SQLEXPRESS;AttachDbFilename=E:\MVC3\TelerikLogin\TelerikLogin\App_Data\Login.mdf;Integrated Security=True;User Instance=True");
DataTable dt1 …Run Code Online (Sandbox Code Playgroud) 我正在为学校项目开发一个邮件客户端.我已经设法使用SmtpClientC#发送电子邮件.这适用于任何服务器,但它不适用于Gmail.我相信这是因为谷歌使用TLS.我曾尝试设置EnableSsl到true上SmtpClient,但这并不有所作为.
这是我用来创建SmtpClient和发送电子邮件的代码.
this.client = new SmtpClient("smtp.gmail.com", 587);
this.client.EnableSsl = true;
this.client.UseDefaultCredentials = false;
this.client.Credentials = new NetworkCredential("username", "password");
try
{
// Create instance of message
MailMessage message = new MailMessage();
// Add receiver
message.To.Add("myemail@mydomain.com");
// Set sender
// In this case the same as the username
message.From = new MailAddress("username@gmail.com");
// Set subject
message.Subject = "Test";
// Set body of message
message.Body = "En test besked";
// Send the message …Run Code Online (Sandbox Code Playgroud) c# ×8
gmail ×6
smtp ×5
.net ×4
email ×3
smtpclient ×3
asp.net ×1
mono ×1
monodevelop ×1
telnet ×1