我没有依赖我的主机发送电子邮件,而是考虑使用我的Gmail帐户发送电子邮件.这些电子邮件是我在节目中播放的乐队的个性化电子邮件.有可能吗?
我正在使用以下代码发送电子邮件.代码在我的本地计算机中正常运行.但在生产服务器上我收到错误消息
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.
下面的代码在本地工作正常,但如果上传它上传到godaddy它不起作用.
错误:显示
SMTP服务器需要安全连接或客户端未经过身份验证.服务器响应为:5.5.1需要身份验证.了解更多信息
Line 53:
Line 54: smtp.EnableSsl = true;
Line 55: smtp.Send(message);
Line 56:
Line 57:
Run Code Online (Sandbox Code Playgroud)
请检查以下代码
MailMessage message = new MailMessage();
message.From = new MailAddress(emailid.Text);
message.To.Add(new MailAddress("receiver@gmail.com"));
message.Subject = "NaatKhawan's Feedback";
message.Body = "Selected: " + DropDownList1.Text.ToString() + "<br/><br/>Name: " + name.Text.ToString() + " <br/><br/>Email: " + emailid.Text.ToString() + " <br/><br/>Contact Number: " + phone.Text.ToString() + " <br/><br/>Message:<br/> " + remabox.Text.ToString();
message.IsBodyHtml = true;
// finaly send the email:
SmtpClient smtp = new SmtpClient();
smtp.Host = "smtp.gmail.com";
smtp.Port …Run Code Online (Sandbox Code Playgroud) 尝试通过我的Web服务发送电子邮件时出错.我已尝试启用访问不太安全的应用程序,禁用两步验证并通过Web浏览器登录帐户.SO的解决方案都没有对我有用.我还是得到:
错误:System.Net.Mail.SmtpException:SMTP服务器需要安全连接或客户端未经过身份验证.服务器响应为:5.5.1需要身份验证.
我该怎么做才能解决这个问题?
namespace EmailService
{
public class Service1 : IService1
{
public string SendEmail(string inputEmail, string subject, string body)
{
string returnString = "";
try
{
MailMessage email = new MailMessage();
SmtpClient smtp = new SmtpClient();
smtp.Host = "smtp.gmail.com";
// set up the Gmail server
smtp.EnableSsl = true;
smtp.Port = 587;
smtp.Credentials = new System.Net.NetworkCredential("myemail@gmail.com", "mypassword");
smtp.DeliveryMethod = SmtpDeliveryMethod.Network;
smtp.UseDefaultCredentials = false;
// draft the email
MailAddress fromAddress = new MailAddress("cse445emailservice@gmail.com");
email.From = fromAddress;
email.To.Add(inputEmail);
email.Subject = body;
email.Body …Run Code Online (Sandbox Code Playgroud) 我有一个 winform 应用程序在我们的生产车间运行,它发送电子邮件进行报告,所以从昨天开始它无法发送电子邮件,我收到了这条消息
\n“SMTP 服务器需要安全连接,或者客户端未经过身份验证。服务器响应为:5.7.0 需要身份验证。”
\n我检查了这篇文章\n SMTP 服务器需要安全连接或客户端未经过身份验证。服务器响应为: 5.5.1 需要身份验证?
\n我发现谷歌不再支持第三方应用程序,它不允许安全性较低的应用程序\n这是来自谷歌安全性较低的应用程序\n安全性较低的应用程序访问:
\n某些应用程序和设备使用安全性较低的登录技术,这会使您的帐户容易受到攻击。您可以关闭对这些应用程序的访问权限(我们建议这样做),或者如果您想尽管存在风险但仍想使用它们,则可以将其打开。如果不使用\xe2\x80\x99,Google 将自动关闭此设置。\n此设置不再可用。了解更多
\n所以我尝试添加 SmtpServer.UseDefaultCredentials = false; 但没有任何作用,我认为问题是谷歌不再支持第三方访问电子邮件。\n这是我的代码
\ntry\n{\n MailMessage mail = new MailMessage();\n System.Net.Mail.SmtpClient SmtpServer =\n new System.Net.Mail.SmtpClient("smtp.gmail.com");\n string sender = "user@gmail.com";\n mail.From = new MailAddress(sender);\n mail.To.Add("receiver@plastikon.com");\n mail.Priority = MailPriority.High;\n mail.Subject = subject;\n mail.IsBodyHtml = true;\n mail.Body = ($"{body} \\n Name of computer: { HostName} ");\n\n SmtpServer.Port = 587;\n SmtpServer.Credentials = new \n System.Net.NetworkCredential("user@gmail.com", "Password");\n SmtpServer.EnableSsl = true;\n SmtpServer.UseDefaultCredentials = false;\n\n SmtpServer.Send(mail);\n}\n …Run Code Online (Sandbox Code Playgroud) 以下代码/sf/answers/255440391/一直有效,直到最近谷歌更改了他们的安全策略时才崩溃.
我收到了谷歌的邮件
嗨xxx,有人刚尝试从不符合现代安全标准的应用登录您的Google帐户xxx@gmail.com.
我们强烈建议您使用Gmail等安全应用访问您的帐户.Google生产的所有应用均符合这些安全标准.另一方面,使用安全性较低的应用可能会使您的帐户容易受到攻击.学到更多.
Google停止了此次登录尝试,但您应该查看最近使用过的设备:
我查看了https://support.google.com/accounts/answer/6010255?hl=en-GB
我想知道,实现正确的登录尝试的方法是什么,以便继续通过Gmail SMTP发送电子邮件,用户端配置为0?
下面是我正在使用的代码。请告知如何纠正此问题。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.IO;
using System.Net;
using System.Net.Mail;
public partial class mailtest : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected void SendEmail(object sender, EventArgs e)
{
lblmsg.Text = "";
try
{
using (MailMessage mm = new MailMessage(txtEmail.Text, txtTo.Text))
{
mm.Subject = txtSubject.Text;
mm.Body = txtBody.Text;
//if (fuAttachment.HasFile)
//{
// string FileName = Path.GetFileName(fuAttachment.PostedFile.FileName);
// mm.Attachments.Add(new Attachment(fuAttachment.PostedFile.InputStream, FileName));
//}
mm.IsBodyHtml = false;
SmtpClient smtp = new …Run Code Online (Sandbox Code Playgroud)