LINUX.ORG.RU

История изменений

Исправление gag, (текущая версия) :

Я здесь вижу намерение послать письмо одному получателю:

Но если я отправляю с gmail

Email email({ "...@gmail.com", "Name" },
              "...@gmail.com",
              "Subj",
              "Body");

email.send(   "smtp://smtp.gmail.com:465",
              "...@gmail.com",
              "Password");

Но выходит, что их двое:

RCPT TO:<...@gmail.com>

< 250 2.1.5 OK 125sm1125430ljj.26 - gsmtp

RCPT TO:< ...@gmail.com>

< 553-5.1.2 The recipient address < ...@gmail.com> is not a valid RFC-5321 < 553 5.1.2 address. 125sm1125430ljj.26 - gsmtp * RCPT failed: 553

Вот тут и должна быть проблема.

    EmailAddress(const std::string &email, const std::string &displayName)
        : email_{email.empty() ? "" : "<"+email+">"},
          name_{"\"" + displayName + "\""}
        {
        }

Наоборот: displayName опционален и может быть пустым, но никак ни email. Т.е. сейчас возможен случай: EmailAddress({"", "Вася"}) Или ещё хуже: EmailAddress({"", ""}). EmailAddress({"to@domain.tld", ""}) тоже будет выглядеть странно: "" <to@domain.tld>.

Исходная версия gag, :

Я здесь вижу намерение послать письмо одному получателю:

Но если я отправляю с gmail

Email email({ "...@gmail.com", "Name" },
              "...@gmail.com",
              "Subj",
              "Body");

email.send(   "smtp://smtp.gmail.com:465",
              "...@gmail.com",
              "Password");

Но выходит, что их двое: RCPT TO:<...@gmail.com>

< 250 2.1.5 OK 125sm1125430ljj.26 - gsmtp

RCPT TO:< ...@gmail.com>

< 553-5.1.2 The recipient address < ...@gmail.com> is not a valid RFC-5321 < 553 5.1.2 address. 125sm1125430ljj.26 - gsmtp * RCPT failed: 553 Вот тут и должна быть проблема.

    EmailAddress(const std::string &email, const std::string &displayName)
        : email_{email.empty() ? "" : "<"+email+">"},
          name_{"\"" + displayName + "\""}
        {
        }

Наоборот: displayName опционален и может быть пустым, но никак ни email. Т.е. сейчас возможен случай: EmailAddress({"", «Вася»}) Или ещё хуже: EmailAddress({"", «„}). EmailAddress({„to@domain.tld“, “„}) тоже будет выглядеть странно: “» <to@domain.tld>.