KCodecs 5.109.0
kemailaddress.h
Go to the documentation of this file.
1/*
2 SPDX-FileCopyrightText: 2004 Matt Douhan <matt@fruitsalad.org>
3
4 SPDX-License-Identifier: LGPL-2.0-or-later
5*/
6
16#ifndef KCODECS_EMAILADDRESS_H
17#define KCODECS_EMAILADDRESS_H
18
19#include <QUrl>
20
21#include <QByteArray>
22#include <QStringList>
23
24#include <kcodecs_export.h>
25
30{
63 NoAddressSpec,
67};
68
75KCODECS_EXPORT
76QStringList splitAddressList(const QString &aStr);
77
98KCODECS_EXPORT
99EmailParseResult splitAddress(const QByteArray &address, QByteArray &displayName, QByteArray &addrSpec, QByteArray &comment);
100
124KCODECS_EXPORT
125EmailParseResult splitAddress(const QString &address, QString &displayName, QString &addrSpec, QString &comment);
126
137KCODECS_EXPORT
138EmailParseResult isValidAddress(const QString &aStr);
139
150KCODECS_EXPORT
151EmailParseResult isValidAddressList(const QString &aStr, QString &badAddr);
152
165KCODECS_EXPORT
167
184KCODECS_EXPORT
185bool isValidSimpleAddress(const QString &aStr);
186
194KCODECS_EXPORT
196
211KCODECS_EXPORT
212QByteArray extractEmailAddress(const QByteArray &address);
213
214/*KF6 merge with above*/
215
227KCODECS_EXPORT
228QByteArray extractEmailAddress(const QByteArray &address, QString &errorMessage);
229
241KCODECS_EXPORT
242QString extractEmailAddress(const QString &address);
243
255KCODECS_EXPORT
256QString extractEmailAddress(const QString &address, QString &errorMessage);
257
267/*KF6 merge with above*/
268KCODECS_EXPORT
269QByteArray firstEmailAddress(const QByteArray &addresses);
270
282KCODECS_EXPORT
283QByteArray firstEmailAddress(const QByteArray &addresses, QString &errorMessage);
284
296KCODECS_EXPORT
297QString firstEmailAddress(const QString &addresses);
298
312KCODECS_EXPORT
313QString firstEmailAddress(const QString &addresses, QString &errorMessage);
314
333KCODECS_EXPORT
334bool extractEmailAddressAndName(const QString &aStr, QString &mail, QString &name);
335
347KCODECS_EXPORT
348bool compareEmail(const QString &email1, const QString &email2, bool matchName);
349
364KCODECS_EXPORT
365QString normalizedAddress(const QString &displayName, const QString &addrSpec, const QString &comment = QString());
366
379KCODECS_EXPORT
380QString fromIdn(const QString &addrSpec);
381
388KCODECS_EXPORT
389QString toIdn(const QString &addrSpec);
390
397KCODECS_EXPORT
398QString normalizeAddressesAndDecodeIdn(const QString &addresses);
399
407KCODECS_EXPORT
408QString normalizeAddressesAndEncodeIdn(const QString &str);
409
420KCODECS_EXPORT
421QString quoteNameIfNecessary(const QString &str);
422
429KCODECS_EXPORT
430QUrl encodeMailtoUrl(const QString &mailbox);
431
437KCODECS_EXPORT
438QString decodeMailtoUrl(const QUrl &mailtoUrl);
439
440} // namespace KEmailAddress
441
442#endif
QString normalizedAddress(const QString &displayName, const QString &addrSpec, const QString &comment=QString())
Returns a normalized address built from the given parts.
QByteArray extractEmailAddress(const QByteArray &address)
Returns the pure email address (addr-spec in RFC2822) of the given address (mailbox in RFC2822).
QString quoteNameIfNecessary(const QString &str)
Add quote characters around the given string if it contains a character that makes that necessary,...
bool extractEmailAddressAndName(const QString &aStr, QString &mail, QString &name)
Return email address and name from string.
bool compareEmail(const QString &email1, const QString &email2, bool matchName)
Compare two email addresses.
QByteArray firstEmailAddress(const QByteArray &addresses)
Returns the pure email address (addr-spec in RFC2822) of the first email address of a list of address...
QString fromIdn(const QString &addrSpec)
Decodes the punycode domain part of the given addr-spec if it's an IDN.
QString normalizeAddressesAndEncodeIdn(const QString &str)
Normalizes all email addresses in the given list and encodes all IDNs in punycode.
QString normalizeAddressesAndDecodeIdn(const QString &addresses)
Normalizes all email addresses in the given list and decodes all IDNs.
QString toIdn(const QString &addrSpec)
Encodes the domain part of the given addr-spec in punycode if it's an IDN.
EmailParseResult isValidAddress(const QString &aStr)
Validates an email address in the form of "Joe User" joe@example.org.
QString simpleEmailAddressErrorMsg()
Returns a i18n string to be used in msgboxes.
EmailParseResult isValidAddressList(const QString &aStr, QString &badAddr)
Validates a list of email addresses, and also allow aliases and distribution lists to be expanded bef...
QStringList splitAddressList(const QString &aStr)
Split a comma separated list of email addresses.
EmailParseResult splitAddress(const QByteArray &address, QByteArray &displayName, QByteArray &addrSpec, QByteArray &comment)
Splits the given address into display name, email address and comment.
bool isValidSimpleAddress(const QString &aStr)
Validates an email address in the form of joe@example.org.
EmailParseResult
Email validation result.
Definition kemailaddress.h:50
QString emailParseResultToString(EmailParseResult errorCode)
Translate the enum errorcodes from emailParseResult into i18n'd strings that can be used for msg boxe...
@ UnbalancedQuote
Quotes (single or double) not matched.
Definition kemailaddress.h:62
@ UnbalancedParens
Unbalanced ( )
Definition kemailaddress.h:54
@ MissingDomainPart
No domain in address.
Definition kemailaddress.h:55
@ UnexpectedComma
Comma not allowed here.
Definition kemailaddress.h:59
@ TooFewDots
Missing .
Definition kemailaddress.h:66
@ TooManyAts
More than one @ in address.
Definition kemailaddress.h:58
@ AddressOk
Email is valid.
Definition kemailaddress.h:51
@ TooFewAts
Missing @ in address.
Definition kemailaddress.h:60
@ InvalidDisplayName
An invalid displayname detected in address.
Definition kemailaddress.h:65
@ AddressEmpty
The address is empty.
Definition kemailaddress.h:52
@ UnexpectedEnd
Something is unbalanced.
Definition kemailaddress.h:53
@ DisallowedChar
An invalid character detected in address.
Definition kemailaddress.h:64
@ UnopenedAngleAddr
> with no preceding <
Definition kemailaddress.h:57
@ UnclosedAngleAddr
< with no matching >
Definition kemailaddress.h:56
@ MissingLocalPart
No address specified, only domain.
Definition kemailaddress.h:61
Definition kemailaddress.h:30
QUrl encodeMailtoUrl(const QString &mailbox)
Creates a valid mailto: URL from the given mailbox.
QString decodeMailtoUrl(const QUrl &mailtoUrl)
Extracts the mailbox out of the mailto: URL.