我有一段发送电子邮件的代码..这是代码
这对我不起作用。这是一个远程 smtp 服务……我仔细检查了电子邮件网络访问是否正常……我可以使用 gui 登录、接收和发送电子邮件。
但是当我尝试通过代码来做时..它失败并显示消息......
{System.Net.Mail.SmtpException: SMTP 服务器需要安全连接或客户端未通过身份验证。服务器响应为:5.7.0 未给出 AUTH 命令。
任何人都可以建议......而且他们没有暴露EWS,即交换网络服务./..这是要走的路..
端口是 25 并且没有 SSL 或 TLS
Button b = sender as Button;
try
{
MailMessage msg = new MailMessage(senderEmail, recieverEmail, "afdasfas", "safasfa");
//MailMessage msg = new MailMessage(senderEmail, recieverEmail, subject, subject);
System.Net.Mail.SmtpClient mailclient = new System.Net.Mail.SmtpClient(EmailSmtpServer, outgoingPort);
System.Net.NetworkCredential auth = new System.Net.NetworkCredential(senderEmail, senderPassword);
mailclient.Host = EmailSmtpServer;
mailclient.UseDefaultCredentials = false;
mailclient.Credentials = auth;
mailclient.Send(msg);
MessageBox.Show(b.Content + ":WORKED");
}
catch (Exception e4)
{
MessageBox.Show(b.Content + ": " +e4.Message);
MessageBox.Show(b.Content …
Run Code Online (Sandbox Code Playgroud) 我的网络应用程序在 azure 中运行。我想要的是能够从 xxx@mydomain.com 发送电子邮件。可以使用 SendGrid 吗?例如,如果我使用 gmail 的 smtp,电子邮件将从 NetworkCredentials 用户名中指定的电子邮件地址发送,即使在 MailMessage 中我使用不同的电子邮件地址。如果我改用 SendGrid,电子邮件是来自 azure 创建的用户名还是我能做到这一点?
我正在努力区分这两个异常,特别是根据它们的属性和用法:
FailedRecipient
为单个电子邮件地址定义了一个属性SmtpFailedRecipientException
这个面具SmtpFailedRecipientsException
从逻辑上讲,我希望复数版本优先 - 服务器无法将您的电子邮件发送给任何收件人 - 超过服务器无法发送给单个特定收件人。
但是,如果您发送给 8 个收件人,其中两个失败怎么办 - 现在您会遇到什么异常?
就捕获, andSmtpClient.Send()
而言,正确处理的调用应该是什么样子?SmtpFailedRecipientException
SmtpFailedRecipientsException
SmtpException
我正在尝试将使用 System.Net.Mail 的应用程序移至 MailKit/MimeKit。
使用 System.NetMail,您可以将消息写入文件夹,如下所示:
_smtp = new SmtpClient()
{
DeliveryMethod = SmtpDeliveryMethod.SpecifiedPickupDirectory,
PickupDirectoryLocation = path //path could be a string like "C:\Temp"
};
_smtp.Send(message);
Run Code Online (Sandbox Code Playgroud)
是否有使用 MailKit/MimeKit 执行此操作的解决方案?
谢谢您的帮助!
我正在尝试编写一个 powershell 脚本来向 30 人发送带有几个附件的电子邮件。电子邮件是个性化的,因此必须单独发送。该脚本在没有附件的情况下运行良好。但是,当使用附件时,Send-MailMessage 的每个其他实例都会失败,并显示:
Send-MailMessage : 无法将数据写入传输连接:远程主机强行关闭了现有连接。
在发送消息之间等待/暂停多长时间似乎并不重要。即使我等了几分钟,第一个实例总是会成功,下一个会失败,下一个会成功,等等。我什至注意到在运行脚本之间,我对偶数或奇数的 ctrl+c 决定了成功Send-MailMessage 的第一个实例。如果最后一条消息失败,则第一条消息成功,反之亦然。
我的代码非常简单,我们只有一个包含所有用户的数组,并且
$array | foreach {
Write-Host "Sending Mail..."
Send-MailMessage -From 'myemail@domain' -To $_.EmailAddress
-SmtpServer 'fqdn'
-Attachments "1.pdf", "2.pdf"
-Subject 'Subject'
-Body ($html)
-BodyAsHtml
}
Run Code Online (Sandbox Code Playgroud)
因此,输出将类似于以下内容:
发送邮件...
发送邮件...
Send-MailMessage : 无法将数据写入传输连接:远程主机强行关闭了现有连接。
发送邮件...
发送邮件...
Send-MailMessage : 无法将数据写入传输连接:远程主机强行关闭了现有连接。
在没有错误的情况下,邮件会完好无损地到达。
我可以通过执行以下操作来“解决”这个问题:
try { Send-MailMessage ... -EA Stop }
catch { Send-MailMessage }
Run Code Online (Sandbox Code Playgroud)
结果,30/30 的人会收到邮件(而不是 15/30),因为每次尝试(除了 #1)都失败了,但是 catch 块中的代码总是能够成功。
当然,这不是一个真正的解决方案,我不想就这样离开它。有没有人对这里发生的事情有任何了解,以及如何解决它?
我创建了一个控制台应用程序,用于将数据从一个数据库表迁移到另一个数据库表,其中迁移了客户的记录,因此我必须通知他们密码更改.
public static async Task<bool> SendRegisterEmail(List<MailMessage> mailMessage)
{
bool flag = true;
try
{
var smtp = new SmtpClient();
var taskEmails = mailMessage.Select(x => smtp.SendMailAsync(x));
await Task.WhenAll(taskEmails); // **Error : An asynchronous call is already in progress. It must be completed or canceled before you can call this method**
}
catch (Exception ex)
{
throw ex;
}
return flag;
}
Run Code Online (Sandbox Code Playgroud)
如果我删除了等待Task.WhenAll(taskEmails),但是当迁移操作完成时,它不会发送所有电子邮件.操作完成后关闭的控制台应用程序中有许多仍未发送,我有超过1,00,000条记录,那么如何在后台或应用程序运行中继续发送电子邮件,直到所有电子邮件成功发送?
以下是数据迁移的代码:
foreach (DataRow SourceReader in DS.Tables[0].Rows)
{
insertCounter++;
using (SqlCommand DestinationCommand = DestinationConnection.CreateCommand())
{
Console.WriteLine("inserting row...");
var …
Run Code Online (Sandbox Code Playgroud) 我正在使用 gmail smtp 发送邮件: 主机:smtp.gmail.com 端口:587
在 MVC 应用程序中使用 gmail smtp 发送邮件时出现异常。以下代码用于发送邮件:
public static int SendMail(string StrFromAdd, string StrEmailTo, string StrSubject, string StrContents,
string SMTPServer, int SMTPPort, string SMTPUserName, string SMTPPassword,
string attachment = "", string CC = "", string BCC = "")
{
try
{
AlternateView AV = null;
System.Net.Mail.SmtpClient smtpClient = new System.Net.Mail.SmtpClient();
System.Net.Mail.MailMessage message = new System.Net.Mail.MailMessage();
System.Net.Mail.MailAddress fromAddress = new System.Net.Mail.MailAddress(StrFromAdd, "Test");
smtpClient.Host = SMTPServer;
smtpClient.Port = SMTPPort;
smtpClient.Credentials = new System.Net.NetworkCredential(SMTPUserName, SMTPPassword);
smtpClient.EnableSsl = true; …
Run Code Online (Sandbox Code Playgroud) 我正在尝试发送 git 补丁以供上游社区审核;但接收方没有收到消息;
我尝试将“ --to
”更改为我的私人电子邮件 ID 之一,但即使如此,我的私人邮箱也没有收到此信息;
命令:
git send-email --no-chain-reply-to --from "Ganapathi Bhat <xxx@gmail.com>" --to linux-wireless@vger.kernel.org my_patch.patch
Run Code Online (Sandbox Code Playgroud)
输出:
Unable to initialize SMTP properly. Check config and use --smtp-debug. VALUES: server=smtp.gmail.com encryption=tls hello=yyy.yyy.com port=587 at /usr/lib/git-core/git-send-email line 1506
Run Code Online (Sandbox Code Playgroud)
命令:
git config -l
输出:
user.email=xxx@gmail.com
user.name=Ganapathi Bhat
sendemail.smtpencryption=tls
sendemail.smtpserver=smtp.gmail.com
sendemail.smtpuser=xxx@gmail.com
sendemail.smtpserverport=587
Run Code Online (Sandbox Code Playgroud)
该补丁应交付给社区进行审核,并且应出现在以下列表中: https ://patchwork.kernel.org/project/linux-wireless/list/
我有一个使用SmtpClient发送电子邮件的应用程序,但在应用程序关闭之前不会发送电子邮件.我搜索并搜索以找到问题的解决方案,但我找不到.
系统确实安装了Symantec防病毒软件,这可能是问题所在.
有没有人能解决这个问题?
这是我正在使用的代码.
public class EMail
{
private string server;
public string Server {get{return this.server;}set{this.server = value;}}
private string to;
public string To {get{return this.to;}set{this.to = value;}}
private string from;
public string From {get{return this.from;}set{this.from = value;}}
private string subject;
public string Subject {get{return this.subject;}set{this.subject = value;}}
private string body;
public string Body {get{return this.body;}set{this.body = value;}}
public EMail()
{}
public EMail(string _server, string _to, string _from, string _subject, string _body)
{
this.Server = _server;
this.To = _to;
this.From …
Run Code Online (Sandbox Code Playgroud) 由于发生"操作超时"错误,无法通过smtp服务器发送邮件.我已经尝试了几乎所有在这个网站上给出的方法,尝试使用另一个端口号以及除了gmail之外的客户端,我想知道问题是什么.以下是附加的代码段.
using System;
using System.Collections.Generic;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Net.Security;
using System.Net.Mail;
using System.Net;
public partial class home : System.Web.UI.Page
{
SmtpClient smtp = new SmtpClient();
MailMessage newMail = new MailMessage();
protected void Page_Load(object sender, EventArgs e)
{
smtp.Host = "smtp.gmail.com";
smtp.Port = 465;
smtp.Credentials = new NetworkCredential("user@gmail.com", "password");
smtp.UseDefaultCredentials = false;
smtp.DeliveryMethod = SmtpDeliveryMethod.Network;
smtp.EnableSsl = true;
newMail.From = new MailAddress("user@gmail.com");
newMail.Priority = MailPriority.High;
}
protected void Button_send_Click(object sender, EventArgs e)
{
try
{
newMail.To.Add(new MailAddress(TextBox_to.Text)); …
Run Code Online (Sandbox Code Playgroud) smtpclient ×10
c# ×7
smtp ×5
email ×4
sendmail ×2
.net ×1
asp.net ×1
asynchronous ×1
azure ×1
exception ×1
git ×1
gmail ×1
mailkit ×1
mailmessage ×1
mimekit ×1
powershell ×1
sendgrid ×1