使用带有 Mandrill 的 Smtp 客户端发送电子邮件

Posted

技术标签:

【中文标题】使用带有 Mandrill 的 Smtp 客户端发送电子邮件【英文标题】:Send Email Using Smtp Client with Mandrill 【发布时间】:2014-11-13 22:47:48 【问题描述】:

我想使用 Mandrill 发送消息。我需要以下代码:

向所有收件人发送相同的消息,但每个收件人都可以看到另一个收件人的地址。

我使用了以下代码:

System.Net.Mail.MailMessage message = new System.Net.Mail.MailMessage();
string[] toResult = to.Split(new Char[]  ';' );
foreach (string s in toResult)

    if (s != null && !s.Trim().Equals("") && !string.IsNullOrEmpty(s))
    
        message.Bcc.Add(s);
    

if (!cc.Equals(""))

    string[] ccResult = cc.Split(new Char[]  ';' );
    foreach (string s in ccResult)
    
        message.CC.Add(s);
    

if (!cci.Equals(""))

    string[] cciResult = cci.Split(new Char[]  ';' );
    foreach (string s in cciResult)
    
        message.Bcc.Add(s);
    

message.Subject = subject;


message.From = new System.Net.Mail.MailAddress(from, from);

message.IsBodyhtml = true;
message.Body = "<html><body>" + body + "</body></html>";
message.BodyEncoding = System.Text.Encoding.UTF8;
System.Net.Mail.AlternateView plainView = System.Net.Mail.AlternateView.CreateAlternateViewFromString
(System.Text.RegularExpressions.Regex.Replace(body, @"<(.|\n)*?>", string.Empty), System.Text.Encoding.UTF8, "text/plain");
System.Net.Mail.AlternateView htmlView = System.Net.Mail.AlternateView.CreateAlternateViewFromString(body, System.Text.Encoding.UTF8, "text/html");
message.AlternateViews.Add(plainView);
message.AlternateViews.Add(htmlView);
message.Priority = System.Net.Mail.MailPriority.Normal;
smtp.Host = smtpH;
bool ssl = false;
if (useSSL.Equals("true"))
    ssl = true;
if (ssl)

    smtp.EnableSsl = true;

else

    smtp.EnableSsl = false;

smtp.DeliveryMethod = System.Net.Mail.SmtpDeliveryMethod.Network;
smtp.UseDefaultCredentials = false;
smtp.Credentials = new System.Net.NetworkCredential(userName, password);
smtp.Port = Convert.ToInt32(port);

message.Headers.Add("Message-Id", String.Concat("<", DateTime.Now.ToString("yyMMdd"), ".",
    DateTime.Now.ToString("HHmmss"), "@" + from.Split('@')[1].ToString() + ">"));
smtp.Send(message);

正如您在上面的代码 sn-p 中看到的,我将所有电子邮件都添加到了密件抄送集合中,但它不起作用。

有没有人知道这个问题。

【问题讨论】:

【参考方案1】:

如果人们仍然可以看到彼此的电子邮件地址,您可能需要转到您帐户中的Sending Defaults 页面并禁用将收件人公开给彼此的选项。否则,您可以添加自定义 SMTP 标头来关闭该选项,但听起来您可能不希望默认启用它。

【讨论】:

以上是关于使用带有 Mandrill 的 Smtp 客户端发送电子邮件的主要内容,如果未能解决你的问题,请参考以下文章

使用 Mandrill 时的 Ruby 引号语法

如何在 mandrill 中更改 SMTP 用户名

使用 smtp mandrill 发送电子邮件的问题

强制 mandrill API 发送邮件,而不是 django 与 smtp

Mandrill SMTP 超时

通过 Mandrill 使用 Elmah 发送错误电子邮件