使用sendmailR,如何指定收件人/发件人姓名以及地址?

时间:2011-09-26 16:42:58

标签: email r smtp sendmail postfix-mta

我正在使用sendmailR发送电子邮件,但我无法使用与电子邮件地址相关联的名称,例如"Sender name" <sender@domain.com>

使用Postfix作为SMTP服务器,它会抛出SMTP Error: 5.5.4 Unsupported option: <sender@domain.com>

应该使用哪种语法或参数?欢迎您的建议!

以下示例:

from <- "\"Sender name\" <sender@domain.com>"
to <- "<olafm@datensplitter.net>"
subject <- "Hello from R"
body <- list("It works!", mime_part(iris))
sendmail(from, to, subject, body,
control=list(smtpServer="ASPMX.L.GOOGLE.COM"))

2 个答案:

答案 0 :(得分:1)

您不得在引用的名称和&lt;&gt;中附带的电子邮件地址之间包含任何空格。这是正确的代码:

from <- "\"Sender name\"<sender@domain.com>"
to <- "\"Recipient name\"<olafm@datensplitter.net>"
subject <- "Hello from R"
body <- list("It works!", mime_part(iris))
sendmail(from, to, subject, body,
control=list(smtpServer="ASPMX.L.GOOGLE.COM"))

答案 1 :(得分:1)

从一方来说,一个电子邮件地址不能包含任何未引用的空格,它应该有一个"\"Sender name Or Any name with any whitespace you want\"<sender@domain.com>"格式。

另一方面, 字段格式中使用的电子邮件地址取决于服务器。

例如,当使用Google的 ASPMX.L.GOOGLE.COM SMTP时,我只能以下列形式编写地址:

from <- "<sender@domain.com>"

这样的选项
  • "\"Sender name\"<sender@domain.com>";
  • "\"Sender name\" <sender@domain.com>";
  • "Sender name<sender@domain.com>";
  • "Sender name <sender@domain.com>"

未被接受并生成

  

SMTP错误:5.5.2语法错误。

(第一个选项)或

  

SMTP错误:5.5.4不支持的选项

(对于选项2-4,我想,因为有空格)。

但是当我尝试使用自定义SMTP服务器时,我能够同时使用from <- "<sender@domain.com>""\"Sender name\"<sender@domain.com>" - 第二个完全按照我的预期获得。