Here Is How Fake News Could Be More Dangerous Than We Thought

Social media networks and messaging apps are now more than ever before catalysts for fake news – the real kind of fake news, not the Trump kind you may see plastered online. While some vague efforts have been made to tackle an admittedly ongoing and unprecedented problem, it seems as a new grim tale about WhatsApp has been highlighted in the press, the ongoing war between the truth and the viral lies can lead to unfortunate events.

The New York Times recently published a statement explaining that, in India, false rumours regarding child abductions spread both easily and quickly and as a result have led to a rise in multiple murders, which are believed to have possibly been arranged by mobs. In recent times, awareness of the fake news stories themselves, which are in turn causing the new increase in deaths, are being sent over the popular app, WhatsApp.

As reported by the Guardian, at least 20 people have been lynched in the country in the last two months as a result of such unfounded rumours, and the number is unfortunately expected to rise.

The Facebook-owned messaging service will now reportedly restrict individuals to only being able to forward messages to just 20 people at a single time in an attempt to stop fake news from spreading, or spreading as rapidly as it had prior. However, Gizmodo spotted that the cap is set even lower in India – only allowing 5 people at any given time. This, of course, doesn’t mean you can’t communicate the news in others ways – by taking a screenshot or typing it out yourself, however it will remove an “easier” option from the mix.

The at present, temporary move was prompted by a Channel 4 news report, which revealed through undercover filming that the service’s moderators were contravening Facebook’s own policies. Although, it’s currently unclear, whether the move will ultimately prove to be effective or not entirely.

While the idea of Fake News was first made popular by President Trump during his presidential campaign, the real case of Fake News has been around almost as long as news itself. Studies are now only just revealing the extent to just how it spreads so quickly, and how it’s truely so resistant to being corrected.

It’s becoming clear that wilful ignorance and intentional deceptions are becoming like diseases for those individuals who may be more open to believing information they read online. Professionals have previously stated there are a number of “viral recipes” which could almost guarantee something to be spread rapidly around the world. Fake news does have the opportunity to spread through almost any technological platform, although has in the past far more quickly and further on social media than anything else, which seemingly also tends to gain more attraction than genuine information.

Though, in saying that, those individuals who are in fact attempting to misrepresent or otherwise popularising fake science, too, comes at a risky cost. Unfounded rumours of impending disasters or medically induced conditions are seemingly spread across the web like a viral infection and because of it, can sometimes dramatically altering people’s lives for the worse. At a minimum, it puts scientific endeavours in a bad light, as fake news for other reporting often leads to a lower public trust in journalism in general. However, it can also seriously impact an individuals health if they take the advice recommended by the fake news articles to treat their illness.

While these examples are only reportedly found in parts of India, fake news can now directly lead to killings all over the world, too. Due to the high risk of engaging in part of a fake news article, or video or otherwise, professionals urge individuals to double – and even triple-check facts listed online with their own trusted doctor before taking the advice written.


Glaucoma is an eye disease characterized by increased intraocular pressure, which eventually causes degeneration in the optic nerve head. In its end-stage, it is also extremely painful. One known surgical procedure uses an expensive laser to effect entry into the suprachoroidal space to relieve the pressure.


Career Resources for African Americans

40 Best companies for diversity - In Black Enterprise's third annual survey, they focus on supplier diversity and senior management representation--how much companies spend with black suppliers and who they let into the corporate suite.

BlackCareers.com - This division of CareerBuilder.com is an employment site for African Americans. It includes full-time, part-time and internship opportunities.

Black Career Woman - the career site gives job seekers the opportunity to improve, prepare, and meet employers.

Diversity Employers - Diversity Employers is a career and self development magazine targeted to recent college graduates as well as more experienced job seekers and professionals who seek information on careers, job opportunities, graduate/professional school, internships/co-ops, study abroad programs, and other employment and career advancement opportunities. It features free, practical feature content, expert advice, employer information resources, and other tools for identifying and applying for jobs with employers who are interested in recruiting a diverse workforce.

National Black MBA Association - The National Black MBA Association (NBMBAA) is dedicated to creating partnerships that
result in increased intellectual and economic wealth in the black community through its five channels of
engagement: education, career, leadership, entrepreneurship and lifestyle.


NOTE: Proxy support of PSI is currently unavailable, but is planned for a future release. If your system requires access to the internet through a proxy you will not be able to use the application at this time. We apologize for the inconvenience.

Any idea how to get it to run? Both laptop and desktop are connected through the same broadband connection. The laptop is connected wirelessly, but the desktop is not.

The PSI makes use of IE (which is build-in to every windows system) to render it's UI and connect to the servers. This is why IE connection settings affect the behaviour of the PSI, and why the PSI can't run unless IE can contact the internet.

Though the PSI always uses your default browser for normal links, Microsoft Products (that use Microsoft Update) require you to use Internet Explorer, as this is the only browser supported by Microsoft Update.


RABAT, Morocco — After landing at the Rabat airport in 2010, Zakaria Moumni, a former kickboxing world champion, was distressed when he was taken aside by security agents, arrested, blindfolded and taken on a ride under a blanket in the back seat of a car to a secret facility. He says he was held there for four days, during which he was deprived of food and water.

“There is no worse feeling than this hopelessness of being blindfolded and handcuffed naked without being able to control anything,” said Mr. Moumni, 34, who spoke from Paris, where he now lives. “They told me that I was in a slaughterhouse and that I was going to leave in small pieces.”

The facility where Mr. Moumni was taken, on Interior Ministry property in a forest in the city of Temara, a few miles south of Rabat, had been established years earlier as a black site for the Central Intelligence Agency to hold “enhanced interrogations” of terrorism suspects. But over the years after the Sept. 11, 2001 attacks, it proved to be a handy tool for the security forces of the Moroccan government as well.

The release of the United States Senate report on torture last month renewed debate about the merits of harsh interrogation techniques in fighting terrorism. But less attention has been paid to what human rights advocates call the damage the sites have done in their host countries, which they say have used them as a tool for terrorizing their political opponents.

“In the early 2000s, many beautiful speeches came from Washington on the necessity to democratize,” said Aboubakr Jamai, a Moroccan journalist and international relations professor at IAU College in Aix-en-Provence, France. “They were meaningless because at the same time the C.I.A. was sending people to get tortured in Morocco.”

Senate Democrats said in their report that the C.I.A.’s harsh interrogation methods failed to produce valuable information that saved American lives. In Morocco, the government was targeting international terrorists as well as its own citizens, who had not necessarily been identified by the C.I.A. Mr. Jamai and others believe that the local authorities exploited the United States’ war against terrorism to intimidate the Moroccan opposition and independent press.

After he was tortured, Mr. Moumni was sent immediately to trial, where he was convicted on criminal fraud charges that Human Rights Watch and Amnesty International said were trumped up in retaliation for his criticism of the monarchy. He was sentenced to three years in prison and served 18 months before he was pardoned by the king to end a diplomatic feud with France — Mr. Moumni is also a French citizen. He has filed suit against the Moroccan officials he says authorized the torture. The Moroccan government denies the allegations and has filed a legal complaint in France to challenge them.

Several human rights organizations claim the Moroccan intelligence services used the Temara center heavily after a 2003 terrorist attack in Casablanca that killed 45 people. A Human Rights Watch report issued a year later said the authorities held people beyond legal time limits without contacting their families or lawyers.

When King Mohammed VI of Morocco succeeded his father in 1999, he promised to end human rights abuses and even spoke vaguely about democracy. A hallmark achievement in the king’s early years was establishing the Equity and Reconciliation Commission to prevent a return to the atrocities committed during his father’s reign.

Under the commission, people spoke out about their suffering and were compensated. But torturers were not prosecuted. In 2003, after the adoption of an antiterrorism law, human rights advocates sounded alarms about secret detentions, kangaroo courts and torture. They gained little traction as the United States prepared to invade Iraq.

“What we saw in Morocco is what we saw in the U.S.,” said Eric Goldstein, deputy director of the Middle East and North Africa division of Human Rights Watch. “After the attacks, security agencies were caught unprepared, they took the gloves off to interrogate massive numbers of people, and we saw a regression in both countries.”

During this period, Morocco was among Washington’s staunchest allies in the campaign against terrorism. “In the area of security cooperation, Morocco is one of our closest counterterrorism partners in the Middle East and North Africa region,” William Roebuck, then the deputy assistant secretary of state for Near Eastern affairs, said in testimony to Congress in April.

But the Senate’s report recounts how C.I.A. officers heard the cries of non-C.I.A. detainees tortured in Temara and complained to their Moroccan counterparts about the abuses. The report states that the relationship between the two sides deteriorated after the C.I.A. complained. American intelligence officials even contemplated building their own facilities in Morocco, but eventually gave up on the idea.

The Moroccan Interior Ministry, which oversees the intelligence services, did not respond to requests for comment.

The Moroccan authorities have denied that they tortured people. In 2011, protesters held rallies to ask for democratic changes. In May 2011, the pro-democracy February 20 Movement that led the protests, organized a picnic in front of the Temara center but was violently repressed by the authorities. An investigation was ordered, without much result.

“I visited the so-called secret detention center in Temara on May 18 to see what they say is a place where human rights violations and shameful violations of human dignity are practiced,” Moulay Al Hassan Al Daki, prosecutor general, said in 2011, “but all I found was administrative offices. I have not seen anywhere what could be considered a secret detention center or a place where people could be maltreated or abused.”

For Oussama Boutahar, who said he was detained in Temara twice — after 9/11 because he had fought with Islamic militants in Bosnia in the ’90s, and also in 2003 — the abuses were real.

“Everyone who was suspected to have any ties to terrorist groups went through Temara,” said Mr. Boutahar, 44, who is now an advocate against torture. “My torturers have told me that the Americans were pressuring Morocco to do this. America legitimized brutal treatments.”

Though most detainees were tortured as part of a larger campaign against terrorism, others with no ties to militancy also landed in Temara.

“If we want to stop torture, we must judge those responsible,” he said.

A version of this article appears in print on , on Page A6 of the New York edition with the headline: Morocco Crushed Dissent Using a U.S. Interrogation Site, Rights Advocates Say. Order Reprints | Today’s Paper | Subscribe


Insecure, the HBO series currently in its terrific second season (#TeamMolly), has been garnering attention since its pilot for its refreshing look at the lives of a small group of black women in Los Angeles. Broadcast in the same slot as its precursor Girls, which showed women as their “real” messy selves, and before that Sex and the City, a fantasia of skipping round New York in Manolos, Insecure sits somewhere between the two. Its storylines are all too real, but it looks stylish and glamorous.

Previous incarnations of black characters on television have mainly been overlit sitcoms or overly gloomy slices of realism. Insecure is neither – and its actors look like bonafide movie stars.

Insecure. Photograph: Lisa Rose/HBO

There is an increasing amount of chatter about tackling questions of representation onscreen – which reached tipping point with the #OscarsSoWhite scandal and has been followed by a triumph for diversity with this week’s Emmy haul for people of colour. But the conversation about the aesthetics of representation – what people of colour actually look like on screen – is rarely addressed. Chronically bad lighting for black actors has been a problem ever since black actors first appeared on screen (and before that, to the era of blackface and minstrelry). I shudder when I think of the number of times I’ve watched a beautiful dark-skinned actor transformed into an ashy sallow spectre because too many film-makers fail to tailor their practice to making that actor look as good as everyone else.

“I don’t appreciate seeing black folks that are unlit,” 13th director Ava DuVernay said recently. “If there’s a dark brother, and if he’s in a frame with a lighter-skinned person, you don’t automatically light for the lighter-skinned person and leave him in shadow.”

But now things seem to be changing. Thanks to the likes of Insecure’s director of photography, Ava Berkofsky, who recently shared the tricks and tactics cinematographers can use to achieve on-screen black magic. Of these, the oldest trick in the book is the importance of moisturising the actors’ skin to give the lighting the most bounce (this was particularly important to Spike Lee when working in black and white on She’s Gotta Have It).

Ava Berkofsky. Photograph: Richard Shotwell/Invision/AP

Lighting should be used to sculpt, rather than bleach, an actor’s skin, a technique championed by Charles Mills in Boyz N the Hood in his night-time exterior shots. Although many directors lament the shift from shooting on film to digital cameras, one of the advantages is that one can digitally recreate the effects of shooting on extinct Fuji, Kodak or Agfa film stocks, which were particularly good for capturing the richness of black skin. The colour palette is key, whether in the production design or the post-production grade – drawing a rainbow of colours from the actors’ skin itself to create something more vibrant and less concerned with being “real”. After all, the original title for Moonlight was In Moonlight Black Boys Appear Blue.

Berkofsky has put herself firmly in the ranks of a new generation of cinematographers who are finally giving black skin the treatment it always deserved. They include Dion Beebe (Collateral), Rachel Morrison (Fruitvale Station), Matthew Libatique (Straight Outta Compton), James Laxton (Moonlight) and Sean Bobbitt (12 Years a Slave). But the DOP on everyone’s lips has to be Bradford Young, responsible for the look of Pariah, Middle of Nowhere and Selma, and the first black man ever to be nominated for a cinematography Oscar. Young credits closely studying the work of those who came before him – including Arthur Jafa, Ernest Dickerson and Malik Sayeed.

Indeed, all of these cinematographers, including Young, trained at Howard University under Haile Gerima, who stressed the importance of accessing the vast referential universe of black art and culture. Young says: “[at Howard] the question of representation was always first and foremost. When bias is built into the negative, how does that affect the way we see people of colour on screen?… There’s always an inherent bias sitting over us. We’ve just got to climb through it and survive, and that’s what’s embodied in the cinematography.”

Adepero Oduye in Pariah. Photograph: Northstar/Kobal/Rex/Shutterstock

This inherent bias is very real, and embedded within every technical aspect of making movies. Isaac Julien, director of Looking for Langston and Frantz Fanon (about to be re-released in a 2k remaster), says “the politics of lighting are summed up in that all technologies that are produced are non-neutral”. “Shirley cards” used by film-makers to calibrate skin tones and light, only featured caucasian models until well into the 70s (and only changed because of complaints from photographers trying to advertise chocolate or wood furniture). Another professor at Howard, Montré Aza Missouri, teaches her students that the sensors used in light meters have been calibrated for white skin. Rather than resorting to tricks, they need to manage the built-in bias of their instruments, in this case opening their cameras’ apertures to allow more light through the lens.

The technology of cinema has sadly always centred on the idea that its rightful subjects are white. There is no corner of cinema that is not dominated by white privilege. But in this new age of technology, at least the tools of cinematography have become equal to the imaginations of film-makers. We have moved beyond the betterment of lighter skin tones and are technically able to equally represent all skin tones – the only thing holding us back is film-makers themselves. And ever so slowly, things might be pushing forward. When I watch Moonlight, Mudbound, Dope or Insecure, it’s not simply about black skin just appearing on screen. It’s about quality, not quantity. It’s about the universe of blackness appearing in all its different glorious ways. It’s about moving past the light-skinned straight-haired blackness of the past, to embrace the dark skin and natural hair of our future.

Lupita Nyong’o in 12 Years a Slave. Photograph: FoxSearchlight/Everett/Rex

Let’s decolonise and moisturise. This is a blackness that has always been here, but has been forced to hide in the shadowy corners of film because, at best, no one knew what to do with it, or, at worst, they deemed it unworthy. It’s about making that blackness look beautiful and aspirational. That is the real defiance of black skin on screen.


Hamilton Hotel

Hamilton Hotel is located at Itaewon. The name, Itaewon, means 'a city for foreigners.' And rightfully so, Itaewon became a shopping mecca for visitors from all around the world. Hamilton Hotel is located in the heart of Itaewon. Its location guarantees visitors a chance of lifetime for shopping, travelling and comfortable staying while in Korea. This town of Itaewon is to present you a memory to last forever with all the eateries and sightseeing attractions within the vicinity.


Wilms' tumor, malformative syndrome, mental retardation and de novo constitutional translocation, t(7;13)(q36;q13).
An apparently balanced de novo constitutional translocation (7;13) (q36;q13) was detected on peripheral lymphocytes and fibroblasts of a 14-month-old boy. The patient presented a facial dysmorphism with hydrocephaly and mental retardation associated with a Wilms' tumor. A pure coincidence of random association cannot be ruled out but one can equally assert the plausibility of a minimal unnoticed deletion or a position effect.


Object Creation

Properties

AbortCurrent

When set to true, causes the currently running method to abort. Methods that always finish quickly (i.e.have no length file operations or network communications) are not affected. If no method is running, then this property is automatically reset to false when the next method is called. When the abort occurs, this property is reset to false. Both synchronous and asynchronous method calls can be aborted. (A synchronous method call could be aborted by setting this property from a separate thread.)

AllOrNone

bool get_AllOrNone()
void put_AllOrNone(bool boolVal);

Prevents sending any email if any of the addresses in the recipient list are rejected by the SMTP server. The default value is false, which indicates that the mail sending should continue even if some email addresses are invalid. (Note: Not all SMTP servers check the validity of email addresses, and even for those that do, it is not 100% accurate.)

Note: An SMTP server only knows the validity of email addresses within the domain it controls.

Important: The AllOrNone property only works if SMTP pipelining is turned off. By default, the SmtpPipelining property is turned on and has the value of true. If all-or-none behavior is desired, make sure to set SmtpPipelining equal to false.

AutoGenMessageId

bool get_AutoGenMessageId()
void put_AutoGenMessageId(bool boolVal);

Controls whether a unique Message-ID header is auto-generated for each email sent.

The Message-ID header field should contain a unique message ID for each email that is sent. The default behavior is to auto-generate this header field at the time the message is sent. This makes it easier for the same email object to be re-used. If the message ID is not unique, the SMTP server may consider the message to be a duplicate of one that has already been sent, and may discard it without sending. This property controls whether message IDs are automatically generated. If auto-generation is turned on (true), the value returned by GetHeaderField("Message-ID") will not reflect the actual message ID that gets sent with the email.

To turn off automatic Message-ID generation, set this property to false.

AutoSmtpRset

bool get_AutoSmtpRset()
void put_AutoSmtpRset(bool boolVal);

If true, then the SMTP "RSET" command is automatically sent to ensure that the SMTP connection is in a valid state when a new email is about to be sent on an already established connection. The default value is false.

Important: This property only applies when an email is sent on an already-open SMTP connection.

AutoUnwrapSecurity

If true, then digitally signed and/or encrypted email when downloaded from a mail server is automatically "unwrapped" and the results of the signature validation and decryption are available in various email object properties and methods. The default value of this property is true. Set this property to false to prevent unwrapping.

Note: A digitally signed or encrypted email can ONLY be verified and/or decrypted when initially loading the original MIME into the email object (i.e. when downloading from the server, or when loading from MIME). Once the MIME is parsed and stored in the internal email object format, the exactnes of the MIME has been lost and the signature can no longer be verified. This is why the signature is verified upon the intial loading of the MIME, and the results are made available through the various properties and methods. This property provides a means for downloading email where the .p7m (or .p7s) attachments are are to be treated as simple attachments and the desire is to access or save the original .p7m/.p7s files.

ClientIpAddress

string clientIpAddress();
void put_ClientIpAddress(string strVal);

The IP address to use for computers with multiple network interfaces or IP addresses.
For computers with a single network interface (i.e. most computers), this property should not be set. For multihoming computers, the default IP address is automatically used if this property is not set.

The IP address is a string such as in dotted notation using numbers, not domain names, such as "165.164.55.124".

ConnectTimeout

DebugLogFilePath

string debugLogFilePath();
void put_DebugLogFilePath(string strVal);

If set to a file path, causes each Chilkat method or property call to automatically append it's LastErrorText to the specified log file. The information is appended such that if a hang or crash occurs, it is possible to see the context in which the problem occurred, as well as a history of all Chilkat calls up to the point of the problem. The VerboseLogging property can be set to provide more detailed information.

This property is typically used for debugging the rare cases where a Chilkat method call hangs or generates an exception that halts program execution (i.e. crashes).
A hang or crash should generally never happen. The typical causes of a hang are:

a timeout related property was set to 0 to explicitly indicate that an infinite timeout is desired,

the hang is actually a hang within an event callback (i.e. it is a hang within the application code), or

there is an internal problem (bug) in the Chilkat code that causes the hang.

DsnNotify

string dsnNotify();
void put_DsnNotify(string strVal);

(An SMTP DSN service extension feature) A string that will be used as the NOTIFY parameter when sending email. (See RFC 3461 for more details. ) This string can be left blank, or can be set to "NEVER", or any combination of a comma-separated list of "SUCCESS", "FAILURE", or "NOTIFY".

DsnRet

string dsnRet();
void put_DsnRet(string strVal);

(An SMTP DSN service extension feature) A string that will be used as the RET parameter when sending email. (See RFC 3461 for more details. ) This string can be left blank, or can be set to "FULL" to receive entire-message DSN notifications, or "HDRS" to receive header-only DSN notifications.

EmbedCertChain

bool get_EmbedCertChain()
void put_EmbedCertChain(bool boolVal);

If true, causes the digital certificate chain to be embedded in signed emails. The certificates in the chain of authentication are embedded up to but not including the root certificate. If the IncludeRootCert property is also true, then the root CA certificate is also included in the S/MIME signature.

Filter

string filter();
void put_Filter(string strVal);

An expression that is applied to any of the following method calls when present: LoadXmlFile, LoadXmlString, LoadMbx, CopyMail, and TransferMail. For these methods, only the emails that match the filter's expression are returned in the email bundle. In the case of TransferMail, only the matching emails are removed from the mail server. The filter allows any header field, or the body, to be checked.

Here are some examples of expressions:
Body like "mortgage rates*".
Subject contains "update" and From contains "chilkat"
To = "info@chilkatsoft.com"
Here are the general rules for forming filter expressions:
Any MIME header field name can be used, case is insensitive.
Literal strings are double-quoted, and case is insensitive.
The "*" wildcard matches 0 or more occurrences of any character.
Parentheses can be used to control precedence.
The logical operators are: AND, OR, NOT (case insensitive)
Comparison operators are: =, , <=, >=, <>
String comparison operators are: CONTAINS, LIKE (case insensitive)

ImmediateDelete

If true (the default) then any method that deletes an email from the POP3 server will also issue a QUIT command to close the session to ensure the message is deleted immediately.

The POP3 protocol is such that the DELE command marks a message for deletion. It is not actually deleted until the QUIT command is sent and the session is closed. If ImmediateDelete is true, then any Chilkat MailMan method that marks a message (or messages) for deletion will also followup with a QUIT command and close the session. If your program sets ImmediateDelete to false, it must make sure to call Pop3EndSession to ensure that messages marked for deletion are actually deleted.

IncludeRootCert

bool get_IncludeRootCert()
void put_IncludeRootCert(bool boolVal);

Controls whether the root certificate in the chain of authentication (i.e. the CA root certificate) is included within the S/MIME signature of a signed email. Note: This property only applies if the EmbedCertChain property is also true.

IsPop3Connected

Returns true if still connected to the POP3 server. Otherwise returns false.

Note: Accessing this property does not trigger any communication with the POP3 server. A connection to the POP3 server is established by explicitly calling Pop3BeginSession, or it is implicitly established as needed by any method that requires communication. A lost connection might only be detected when attempting to communicate with the server. To truly determine if a connection to the POP3 server is open and valid, it may be necessary to call the Pop3Noop method instead. This property might return true if the server has disconnected, but the client has not attempted to communicate with the server since the disconnect.

IsSmtpConnected

(read-only)
bool get_IsSmtpConnected()

Returns true if still connected to the SMTP server. Otherwise returns false (if there was never a connection in the first place, or if the connection was lost).

Note: Accessing this property does not trigger any communication with the SMTP server. A connection to the SMTP server is established by explicitly calling OpenSmtpConnection, or it is implicitly established as needed by any method that requires communication. A lost connection might only be detected when attempting to communicate with the server. To truly determine if a connection to the SMTP server is open and valid, it may be necessary to call the SmtpNoop method instead. This property might return true if the server has disconnected, but the client has not attempted to communicate with the server since the disconnect.

LastErrorText

(read-only)
string lastErrorText();

Provides information in plain-text format about the last method/property called. If a method call returns a value indicating failure, or behaves unexpectedly, examine this property to get more information.

LastMethodSuccess

Indicate whether the last method call succeeded or failed. A value of true indicates success, a value of false indicates failure. This property is automatically set for method calls. It is not modified by property accesses. The property is automatically set to indicate success for the following types of method calls:

LogMailSentFilename

MailHost

string mailHost();
void put_MailHost(string strVal);

The domain name of the POP3 server. Do not include "http://" in the domain name. This property may also be set to an IP address string, such as "168.144.70.227". Both IPv4 and IPv6 address formats are supported.

MailPort

int get_MailPort()
void put_MailPort(int intVal);

The port number of the POP3 server. Only needs to be set if the POP3 server is running on a non-standard port. The default value is 110. (If SSL/TLS is used by setting the PopSsl property = true, then this property should probably be set to 995, which is the standard SSL/TLS port for POP3.)

MaxCount

int get_MaxCount()
void put_MaxCount(int intVal);

Limits the number of messages the MailMan will try to retrieve from the POP3 server in a single method call. If you are trying to read a large mailbox, you might set this to a value such as 100 to download 100 emails at a time.

OAuth2AccessToken

The OAUTH2 access token if OAUTH2 authentication is to be used for the authentication. For GMail, the Chilkat HTTP class/object's G_SvcOauthAccessToken method can be called to obtain an OAUTH2 access token.

Pop3SessionLog

(read-only)
string pop3SessionLog();

This string property accumulates the raw commands sent to the POP3 server, and the raw responses received from the POP3 server. This property is read-only, but it may be cleared by calling ClearPop3SessionLog.

Pop3SslServerCertVerified

Pop3Stls

bool get_Pop3Stls()
void put_Pop3Stls(bool boolVal);

If true, then an unencrypted connection (typically on port 110) is automatically converted to a secure TLS connection via the STLS command (see RFC 2595) when connecting. This should only be used with POP3 servers that support the STLS capability. If this property is set to true, then the PopSsl property should be set to false. (The PopSsl property controls whether the connection is SSL/TLS from the beginning. Setting the Pop3Stls property = true indicates that the POP3 client will initially connect unencrypted and then convert to TLS.)

PopPassword

string popPassword();
void put_PopPassword(string strVal);

The POP3 password.

If the Pop3SPA property is set, the PopUsername and PopPassword properties may be set to the string "default" to cause the component to use the current logged-on credentials (of the calling process) for authentication.

PopPasswordBase64

PopSsl

bool get_PopSsl()
void put_PopSsl(bool boolVal);

Controls whether TLS/SSL is used when reading email from a POP3 server. Note: Check first to determine if your POP3 server can accept TLS/SSL connections. Also, be sure to set the MailPort property to the TLS/SSL POP3 port number, which is typically 995.

PopUsername

string popUsername();
void put_PopUsername(string strVal);

The POP3 login name.

If the Pop3SPA property is set, the PopUsername and PopPassword properties may be set to the string "default" to cause the component to use the current logged-on credentials (of the calling process) for authentication.

RequireSslCertVerify

If true, then the mailman will verify the SMTP or POP3 server's SSL certificate when connecting. The certificate is expired, or if the cert's signature is invalid, the connection is not allowed. The default value of this property is false. (Obviously, this only applies to SSL/TLS connections.)

ResetDateOnLoad

bool get_ResetDateOnLoad()
void put_ResetDateOnLoad(bool boolVal);

Controls whether the Date header field is reset to the current date/time when an email is loaded from LoadMbx, LoadEml, LoadMime, LoadXml, or LoadXmlString. The default is false (to not reset the date). To automatically reset the date, set this property equal to true.

SendBufferSize

SendIndividual

bool get_SendIndividual()
void put_SendIndividual(bool boolVal);

Determines how emails are sent to distribution lists. If true, emails are sent to each recipient in the list one at a time, with the "To"header field containing the email address of the recipient. If false, emails will contain in the "To"header field, and are sent to 100 BCC recipients at a time. As an example, if your distribution list contained 350 email addresses, 4 emails would be sent, the first 3 having 100 BCC recipients, and the last email with 50 BCC recipients.The default value of this property is true.

SizeLimit

int get_SizeLimit()
void put_SizeLimit(int intVal);

The MailMan will not try to retrieve mail messages from a POP3 server that are greater than this size limit. The default value is 0 indicating no size limit. The SizeLimit is specified in number of bytes.

SmtpAuthMethod

string smtpAuthMethod();
void put_SmtpAuthMethod(string strVal);

This property should usually be left empty. The MailMan will by default choose the most secure login method available to prevent unencrypted username and passwords from being transmitted if possible. However, some SMTP servers may not advertise the acceptable authorization methods, and therefore it is not possible to automatically determine the best authorization method. To force a particular auth method, or to prevent any authorization from being used, set this property to one of the following values: "NONE", "LOGIN", "PLAIN", "CRAM-MD5", or "NTLM".

Note: If NTLM authentication does not succeed, set the Global.DefaultNtlmVersion property equal to 1 and then retry.

SmtpHost

string smtpHost();
void put_SmtpHost(string strVal);

The domain name of the SMTP server. Do not include "http://" in the domain name. This property may also be set to an IP address string, such as "168.144.70.227". Both IPv4 and IPv6 address formats are supported.

SmtpLoginDomain

string smtpLoginDomain();
void put_SmtpLoginDomain(string strVal);

The Windows domain for logging into the SMTP server. Use this only if your SMTP server requires NTLM authentication, which means your SMTP server uses Integrated Windows Authentication. If there is no domain, this can be left empty.

SmtpPassword

string smtpPassword();
void put_SmtpPassword(string strVal);

The password for logging into the SMTP server. Use this only if your SMTP server requires authentication. Chilkat Email.NET supports the LOGIN, PLAIN, CRAM-MD5, and NTLM login methods, and it will automatically choose the most secure method available. Additional login methods will be available in the future.

If NTLM (Windows-Integrated) authentication is used, the SmtpUsername and SmtpPassword properties may be set to the string "default" to cause the component to use the current logged-on credentials (of the calling process) for authentication.

SmtpPipelining

Controls whether SMTP pipelining is automatically used when the SMTP server indicates support for it. The default is true. Setting this property equal to false will prevent the SMTP pipelining feature from being used.

SmtpPort

int get_SmtpPort()
void put_SmtpPort(int intVal);

The port number of the SMTP server used to send email. Only needs to be set if the SMTP server is running on a non-standard port. The default value is 25. If SmtpSsl is set to true, this property should be set to 465. (TCP port 465 is reserved by common industry practice for secure SMTP communication using the SSL protocol.)

SmtpSessionLog

(read-only)
string smtpSessionLog();

This string property accumulates the raw commands sent to the SMTP server, and the raw responses received from the SMTP server. This property is read-only, but it may be cleared by calling ClearSmtpSessionLog.

SmtpUsername

string smtpUsername();
void put_SmtpUsername(string strVal);

The login for logging into the SMTP server. Use this only if your SMTP server requires authentication.

Note: In many cases, an SMTP server will not require authentication when sending to an email address local to it's domain. However, when sending email to an external domain, authentication is required (i.e. the SMTP server is being used as a relay).

If the Pop3SPA property is set, the PopUsername and PopPassword properties may be set to the string "default" to cause the component to use the current logged-on credentials (of the calling process) for authentication.

SslAllowedCiphers

Provides a means for setting a list of ciphers that are allowed for SSL/TLS connections. The default (empty string) indicates that all implemented ciphers are possible. The TLS ciphers supported in Chilkat v9.5.0.55 and later are:

To restrict SSL/TLS connections to one or more specific ciphers, set this property to a comma-separated list of ciphers such as "TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384, TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384". The order should be in terms of preference, with the preferred algorithms listed first. (Note that the client cannot specifically choose the algorithm is picked because it is the server that chooses. The client simply provides the server with a list from which to choose.)

The property can also disallow connections with servers having certificates with RSA keys less than a certain size. By default, server certificates having RSA keys of 512 bits or greater are allowed. Add the keyword "rsa1024" to disallow connections with servers having keys smaller than 1024 bits. Add the keyword "rsa2048" to disallow connections with servers having keys smaller than 2048 bits.

Note: Prior to Chilkat v9.5.0.55, it was not possible to explicitly list allowed cipher suites. The deprecated means for indicating allowed ciphers was both incomplete and unprecise. For example, the following keywords could be listed to allow matching ciphers: "aes256-cbc", "aes128-cbc", "3des-cbc", and "rc4". These keywords will still be recognized, but programs should be updated to explicitly list the allowed ciphers.

secure-renegotiation: Starting in Chilkat v9.5.0.55, the keyword "secure-renegotiation" may be added to require that all renegotions be done securely (as per RFC 5746).

best-practices: Starting in Chilkat v9.5.0.55, this property may be set to the single keyword "best-practices". This will allow ciphers based on the current best practices. As new versions of Chilkat are released, the best practices may change. Changes will be noted here. The current best practices are:

The default value is "default" which will choose the, which allows for the protocol to be selected dynamically at runtime based on the requirements of the server. Choosing an exact protocol will cause the connection to fail unless that exact protocol is negotiated. It is better to choose "X or higher" than an exact protocol. The "default" is effectively "SSL 3.0 or higher".
top

StartTLS

bool get_StartTLS()
void put_StartTLS(bool boolVal);

When set to true, causes the mailman to issue a STARTTLS command to switch over to a secure SSL/TLS connection prior to authenticating and sending email. The default value is false.

StartTLSifPossible

When set to true, causes the mailman to do STARTTLS (if possible and supported by the server) to convert to a secure SSL/TLS connection prior to authenticating and sending email. The default value is true.

Note: Setting the StartTLS property = true causes STARTTLS to always be used, even if the SMTP server does not support it. This property allows for a non-encrypted connection, whereas the StartTLS property disallows non-encrypted connections.

TlsCipherSuite

Contains the current or last negotiated TLS cipher suite. If no TLS connection has yet to be established, or if a connection as attempted and failed, then this will be empty. A sample cipher suite string looks like this: TLS_DHE_RSA_WITH_AES_256_CBC_SHA256.

TlsPinSet

Specifies a set of pins for Public Key Pinning for TLS connections. This property lists the expected SPKI fingerprints for the server certificates. If the server's certificate (sent during the TLS handshake) does not match any of the SPKI fingerprints, then the TLS handshake is aborted and the connection fails. The format of this string property is as follows:

hash_algorithm, encoding, SPKI_fingerprint_1, SPKI_fingerprint_2, ...

For example, the following string specifies a single sha256 base64-encoded SPKI fingerprint:

TlsVersion

Contains the current or last negotiated TLS protocol version. If no TLS connection has yet to be established, or if a connection as attempted and failed, then this will be empty. Possible values are "SSL 3.0", "TLS 1.0", "TLS 1.1", and "TLS 1.2".

UseApop

Utf8

bool get_Utf8()
void put_Utf8(bool boolVal);

When set to true, all "const char *" arguments are interpreted as utf-8 strings. If set to false (the default), then "const char *" arguments are interpreted as ANSI strings.
Also, when set to true, and Chilkat method returning a "const char *" is returning the utf-8 representation. If set to false, all "const char *" return values are ANSI strings.

VerboseLogging

bool get_VerboseLogging()
void put_VerboseLogging(bool boolVal);

If set to true, then the contents of LastErrorText (or LastErrorXml, or LastErrorHtml) may contain more verbose information. The default value is false. Verbose logging should only be used for debugging. The potentially large quantity of logged information may adversely affect peformance.

Version

Methods

AddPfxSourceData

Adds a PFX to the object's internal list of sources to be searched for certificates and private keys when decrypting or when creating signed email for sending. Multiple PFX sources can be added by calling this method once for each. (On the Windows operating system, the registry-based certificate stores are also automatically searched, so it is commonly not required to explicitly add PFX sources.)

The pfxData contains the bytes of a PFX file (also known as PKCS12 or .p12).

AddPfxSourceFile

bool AddPfxSourceFile(string pfxFilePath, string password);

Adds a PFX file to the object's internal list of sources to be searched for certificates and private keys when decrypting or when sending signed email. Multiple PFX files can be added by calling this method once for each. (On the Windows operating system, the registry-based certificate stores are also automatically searched, so it is commonly not required to explicitly add PFX sources.)

The pfxFilePath contains the bytes of a PFX file (also known as PKCS12 or .p12).

CheckMail

int CheckMail();

Returns the number of emails available on the POP3 server. Returns -1 on error.

The VerifyPopConnection method can be called to verify basic TCP/IP connectivity with the POP3 server. The VerifyPopLogin method can be called to verify the POP3 login. The Verify* methods are intended to be called as a way of diagnosing the failure when a POP3 method returns an error status.

ClearBadEmailAddresses

void ClearBadEmailAddresses();

Clears the list of bad email addresses stored within the Mailman object. When an email-sending method is called, any email addresses rejected by the SMTP server will be cached within the Mailman object. These can be accessed by calling the GetBadEmailAddresses method. This method clears the Mailman's in-memory cache of bad addresses.

ClearPop3SessionLog

ClearSmtpSessionLog

CloseSmtpConnection

bool CloseSmtpConnection();

The mailman object automatically opens an SMTP connection (if necessary) whenever an email-sending method is called. The connection is kept open until explicitly closed by this method. Calling this method is entirely optional. The SMTP connection is also automatically closed when the mailman object is destructed. Thus, if an application calls SendEmail 10 times to send 10 emails, the 1st call will open the SMTP connection, while the subsequent 9 will send over the existing connection (unless a property such as username, login, hostname, etc. is changed, which would force the connection to become closed and re-established with the next mail-sending method call).

Note: This method sends a QUIT command to the SMTP server prior to closing the connection.

DeleteBundle

Marks multiple emails on the POP3 server for deletion. (Each email in emailBundle that is also present on the server is marked for deletion.) To complete the deletion of the emails, a "QUIT" message must be sent and the POP3 session ended. This will happen automatically when the ImmediateDelete property equals true, which is the default. If ImmediateDelete equals false, then the Pop3EndSession method can be called to send the "QUIT" and end the session (i.e. disconnect.)

Note: When making multiple calls to a Delete* method, it's best to turn off ImmediateDelete, and then manually call Pop3EndSession to finalize the deletions.

Also, any method call requiring communication with the POP3 server will automatically re-establish a session based on the current property settings.

DeleteByMsgnum

bool DeleteByMsgnum(int msgnum);

Marks an email for deletion by message number. WARNING: Be very careful if calling this method. Message numbers are specific to a POP3 session. If a maildrop has (for example) 10 messages, the message numbers will be 1, 2, 3, ... 10. If message number 1 is deleted and a new POP3 session is established, there will be 9 messages numbered 1, 2, 3, ... 9.

IMPORTANT: A POP3 must first be established by either calling Pop3BeginSession explicitly, or implicitly by calling some other method that automatically establishes the session. This method will not automatically establish a new POP3 session (because if it did, the message numbers would potentially be different than what the application expects).

This method only marks an email for deletion. It is not actually removed from the maildrop until the POP3 session is explicitly ended by calling Pop3EndSession.

DeleteByUidl

bool DeleteByUidl(string uidl);

Marks an email on the POP3 server for deletion. To complete the deletion of an email, a "QUIT" message must be sent and the POP3 session ended. This will happen automatically when the ImmediateDelete property equals true, which is the default. If ImmediateDelete equals false, then the Pop3EndSession method can be called to send the "QUIT" and end the session (i.e. disconnect.)

Note: When making multiple calls to a Delete* method, it's best to turn off ImmediateDelete, and then manually call Pop3EndSession to finalize the deletions.

Also, any method call requiring communication with the POP3 server will automatically re-establish a session based on the current property settings.

DeleteEmail

Marks an email on the POP3 server for deletion. To complete the deletion of an email, a "QUIT" message must be sent and the POP3 session ended. This will happen automatically when the ImmediateDelete property equals true, which is the default. If ImmediateDelete equals false, then the Pop3EndSession method can be called to send the "QUIT" and end the session (i.e. disconnect.)

Note: When making multiple calls to a Delete* method, it's best to turn off ImmediateDelete, and then manually call Pop3EndSession to finalize the deletions.

Also, any method call requiring communication with the POP3 server will automatically re-establish a session based on the current property settings.

DeleteMultiple

Marks multiple emails on the POP3 server for deletion. (Any email on the server having a UIDL equal to a UIDL found in uidlArray is marked for deletion.) To complete the deletion of the emails, a "QUIT" message must be sent and the POP3 session ended. This will happen automatically when the ImmediateDelete property equals true, which is the default. If ImmediateDelete equals false, then the Pop3EndSession method can be called to send the "QUIT" and end the session (i.e. disconnect.)

Note: When making multiple calls to a Delete* method, it's best to turn off ImmediateDelete, and then manually call Pop3EndSession to finalize the deletions.

Also, any method call requiring communication with the POP3 server will automatically re-establish a session based on the current property settings.

FetchByMsgnum

Fetches an email by message number. WARNING: Be very careful if calling this method. Message numbers are specific to a POP3 session. If a maildrop has (for example) 10 messages, the message numbers will be 1, 2, 3, ... 10. If message number 1 is deleted and a new POP3 session is established, there will be 9 messages numbered 1, 2, 3, ... 9.

IMPORTANT: A POP3 connection must first be established by either calling Pop3BeginSession explicitly, or implicitly by calling some other method that automatically establishes the session. This method will not automatically establish a new POP3 session (because if it did, the message numbers would potentially be different than what the application expects).

FetchEmail

Fetches an email from the POP3 mail server given its UIDL. Calling this method does not remove the email from the server. A typical program might get the email headers from the POP3 server by calling GetAllHeaders or GetHeaders, and then fetch individual emails by UIDL.

FetchMimeByMsgnum

Fetches an email by message number and returns the MIME source of the email in a byte array. WARNING: Message sequend numbers are specific to a POP3 session. If a maildrop has (for example) 10 messages, the message numbers will be 1, 2, 3, ... 10. If message number 1 is deleted and a new POP3 session is established, there will be 9 messages numbered 1, 2, 3, ... 9.

IMPORTANT: A POP3 connection must first be established by either calling Pop3BeginSession explicitly, or implicitly by calling some other method that automatically establishes the session. This method will not automatically establish a new POP3 session (because if it did, the message numbers would potentially be different than what the application expects).

FetchMultipleHeaders

Given an array of UIDL strings, fetchs all the email headers from the POP3 server whose UIDL is present in the array.

Note: The email objects returned in the bundle contain only headers. The attachments will be missing, and the bodies will be mostly missing (only the 1st numBodyLines lines of either the plain-text or HTML body will be present).

FetchMultipleMime

Given an array of UIDL strings, fetchs all the emails from the POP3 server whose UIDL is present in the array, and returns the MIME source of each email in an "stringarray" -- an object containing a collection of strings. Returns a null reference on failure.

FetchSingleHeader

Fetches a single header by message number. Returns an email object on success, or a null reference on failure.

Note: The email objects returned in the bundle contain only headers. The attachments will be missing, and the bodies will be mostly missing (only the 1st messageNumber lines of either the plain-text or HTML body will be present).

Also Important:Message numbers are specific to a POP3 session (whereas UIDLs are valid across sessions). Be very careful when using this method.

FetchSingleHeaderByUidl

Fetches a single header by UIDL. Returns an email object on success, or a null reference on failure.

Note: The email objects returned in the bundle contain only headers. The attachments will be missing, and the bodies will be mostly missing (only the 1st uidl lines of either the plain-text or HTML body will be present).

GetAllHeaders

Returns all the emails from the POP3 server, but only the first numBodyLines lines of the body. Attachments are not returned. The emails returned in the bundle are valid email objects, the only difference is that the body is truncated to include only the top numBodyLines lines, and the attachments will be missing.

GetBadEmailAddrs

Returns a string array object containing a list of failed and invalid email addresses that have accumulated during SMTP sends. The list will not contain duplicates. Also, this only works with some SMTP servers -- not all SMTP servers check the validity of each email address.

Note: An SMTP server can only validate the email addresses within it's own domain. External email address are not verifiable at the time of sending.

GetFullEmail

If a partial email was obtained using GetHeaders or GetAllHeaders, this method will take the partial email as an argument, and download the full email from the server. A new email object (separate from the partial email) is returned. A null reference is returned on failure.

GetSentToEmailAddrs

Returns the list of successful email addresses in the last call to a mail sending method, such as SendEmail.

When an email is sent, the email addresses that were flagged invalid by the SMTP server are saved in a "bad email addresses" list within the mailman object, and the acceptable email addresses are saved in a "good email addresses" list (within the mailman object). These internal lists are automatically reset at the start of the next mail-sending method call. This allows for a program to know which email addresses were accepted and which were not.

Note: The AllOrNone property controls whether the mail-sending method, such as SendEmail, returns false (to indicate failure) if any single email address is rejected.

Note: An SMTP server can only be aware of invalid email addresses that are of the same domain. For example, the comcast.net mail servers would only be aware of what comcast.net email addresses are valid. All external email addresses are implicitly accepted because the server is simply forwarding the email towards the mail server controlling that domain.

IsSmtpDsnCapable

bool IsSmtpDsnCapable();

Contacts the SMTP server and determines if it supports the DSN (Delivery Status Notification) features specified by RFC 3461 and supported by the DsnEnvid, DsnNotify, and DsnRet properties. Returns true if the SMTP server supports DSN, otherwise returns false.

IsUnlocked

LastJsonData

Provides information about what transpired in the last method called on this object instance. For many methods, there is no information. However, for some methods, details about what occurred can be obtained by getting the LastJsonData right after the method call returns.

LoadQueuedEmail

Loads an email previously written to a Chilkat SMTPQ file via the SendQ/SendQ2 methods. When SendQ or SendQ2 writes an email to a queue directory, the .eml created contains special MIME header fields used by the SMTPQ process. These include fields to specify the SMTP server, login/password, whether the email should be sent signed and/or encrypted, etc. The SMTPQ process reads these fields and removes them before sending. This method will read the .eml and set the mailman properties to reflect the settings at the time when SendQ/SendQ2 was originally called. This makes it possible for you to write your own "SMTPQ" process that processes files from a queue directory and sends according to the SMTP hostname/login parameters specified by the program that queued the email.

MxLookupAll

Performs a DNS MX lookup to return the list of mail server hostnames based on an email address. The primary server is at index 0. In most cases, there is only one mail server for a given email address.

OpenSmtpConnection

bool OpenSmtpConnection();

Explicitly opens a connection to the SMTP server and authenticates (if a username/password was specified). Calling this method is optional because the SendEmail method and other mail-sending methods will automatically open the connection to the SMTP server if one is not already established.

Note: This method is the equivalent of calling SmtpConnect followed by SmtpAuthenticate.

Pop3BeginSession

bool Pop3BeginSession();

Call to explicitly begin a POP3 session. It is not necessary to call this method because any method requiring an established POP3 session will automatically connect and login if a session is not already open.

Important: All TCP-based Internet communications, regardless of the protocol (such as HTTP, FTP, SSH, IMAP, POP3, SMTP, etc.), and regardless of SSL/TLS, begin with establishing a TCP connection to a remote host:port. External security-related infrastructure such as software firewalls (Windows Firewall), hardware firewalls, anti-virus, at either source or destination (or both) can block the connection. If the connection fails, make sure to check all potential external causes of blockage.

Pop3Connect

Explicitly establishes a connection to the POP3 server, which includes establishing a secure TLS channel if required, and receives the initial greeting. This method stops short of authenticating. The Pop3Authenticate method should be called after a successful call to this method.

Note 1: The Pop3BeginSession method both connects and authenticates. It is the equivalent of calling Pop3Connect followed by Pop3Authenticate.

Note 2: All methods that communicate with the POP3 server, such as FetchEmail, will automatically connect and authenticate if not already connected and authenticated.

Important: All TCP-based Internet communications, regardless of the protocol (such as HTTP, FTP, SSH, IMAP, POP3, SMTP, etc.), and regardless of SSL/TLS, begin with establishing a TCP connection to a remote host:port. External security-related infrastructure such as software firewalls (Windows Firewall), hardware firewalls, anti-virus, at either source or destination (or both) can block the connection. If the connection fails, make sure to check all potential external causes of blockage.

Pop3SendRawCommand

Sends a raw command to the POP3 server and returns the POP3 server's response. If non-us-ascii characters are included in command, then charset indicates the charset to be used in sending the command (such as "utf-8", "ansi", "iso-8859-1", "Shift_JIS", etc.)

RenderToMime

When an email is sent by calling SendEmail, it is first "rendered" according to the values of the email properties and contents. It may be digitally signed, encrypted, values substituted for replacement patterns, and header fields "Q"or "B" encoded as needed based on the email. The RenderToMime method performs the rendering, but without the actual sending. The MIME text produced is exactly what would be sent to the SMTP server had SendEmail been called. (The SendEmail method is effectively the same as calling RenderToMime followed by a call to SendRendered.)

RenderToMimeBytes

This method is the same as RenderToMime, but the MIME is returned in a byte array. If an email uses an 8bit or binary MIME encoding, then calling RenderToMime may introduce errors because it is not possible to return non-text binary data as a string. Therefore, calling RenderToMimeBytes is recommended over RenderToMime, unless it is assured that the email (MIME) does not use a binary encoding for non-text data.

SendBundle

Sends a bundle of emails. This is identical to calling SendEmail for each email in the bundle.

If an error occurs when sending one of the emails in the bundle, it will continue with each subsequent email until each email in the bundle has been attempted (unless a fatal error occurs, in which case the send is aborted).

Because it is difficult or impossible to programmatically identify which emails in the bundle failed and which succeeded, it is best to write a loop that sends each email separately (via the SendEmail method).

SendEmail

Sends a single email. The connection to the SMTP server will remain open so that a subsequent call to SendEmail (or other email-sending methods) can re-use the same connection. If any properties relating to the SMTP server are changed, such as SmtpHost, SmtpUsername, etc., then the next call to an email-sending method will automatically close the connection and re-establish a connection using the updated property settings.

Important: Some SMTP servers do not actually send the email until the connection is closed. In these cases, it is necessary to call CloseSmtpConnection for the mail to be sent. Most SMTP servers send the email immediately, and it is not required to close the connection.

GMail: If sending via smtp.gmail.com, then send with OAuth2 authentication if possible. Otherwise you will need to change your GMail account settings to allow for sending by less secure apps. See the links below.

SendMime

bool SendMime(string fromAddr, string recipients, string mimeSource);

Provides complete control over the email that is sent. The MIME text passed in mimeSource (the MIME source of an email) is passed exactly as-is to the SMTP server. The recipients is a comma separated list of recipient email addresses. The fromAddr is the reverse-path email address. This is where bounced email (non-delivery reports) will be delivered. It may be different than the "From" header field in the mimeSource.

To understand how the fromAddr and recipients relate to the email addresses found in the MIME headers (FROM, TO, CC), see the link below entitled "SMTP Protocol in a Nutshell". The fromAddr is what is passed to the SMTP server in the "MAIL FROM" command. The recipients are the email addresses passed in "RCPT TO" commands. These are usually the same email addresses found in the MIME headers, but need not be (unless the SMTP server enforces policies that require them to be the same).

SendMimeBytes

This method is the same as SendMime, except the MIME is passed in a byte array. This can be important if the MIME uses a binary encoding, or if a DKIM/DomainKey signature is included.

To understand how the fromAddr and recipients relate to the email addresses found in the MIME headers (FROM, TO, CC), see the link below entitled "SMTP Protocol in a Nutshell". The fromAddr is what is passed to the SMTP server in the "MAIL FROM" command. The recipients are the email addresses passed in "RCPT TO" commands. These are usually the same email addresses found in the MIME headers, but need not be (unless the SMTP server enforces policies that require them to be the same).

SendMimeQ

Same as SendMime, except the email is written to the Chilkat SMTPQ's queue directory for background sending from the SMTPQ service.

Important: The SMTPQ functionality is deprecated and will be removed in a future version. The SMTPQ Windows Service Visual Studo project is available on GitHub at the link below. Users would need to build the project prior to using. Chilkat does not provide pre-built binaries for the SMTPQ Windows Service.

SendQ

Queues an email to be sent using the Chilkat SMTP queue service. This is the same as SendEmail, except the email is written to the SMTPQ's queue directory.

The email is written as a .eml to the SMTPQ's queue directory. The SMTP server hostname, login, password, and send-time parameters are saved as encrypted headers in the .eml. The SMTPQ service watches the queue directory. When a .eml file appears, it loads the .eml, extracts and removes the encrypted information from the header, and sends the email.

Note: When the Chilkat SMTPQ service is configured, the location of the queue directory is written to the registry. Because Chilkat SMTPQ is a 32-bit service, it is the 32-bit registry that is written. (Microsoft 64-bit systems have two separate registries -- one for 32-bit and one for 64-bit.) Therefore, if your application is a 64-bit app, the registry lookup for the queue directory will fail. You should instead call the SendQ2 method which allows for the queue directory to be explicitly specified.

Note: After calling this method, the filename of the .eml that was created will be available in the LastSendQFilename property.

Important: The SMTPQ functionality is deprecated and will be removed in a future version. The SMTPQ Windows Service Visual Studo project is available on GitHub at the link below. Users would need to build the project prior to using. Chilkat does not provide pre-built binaries for the SMTPQ Windows Service.

SendQ2

Same as SendQ, but the queue directory can be explicitly specified in a method argument.

Beginning with version 9.5.0.47, the queueDir can indicate the exact output filepath to be written. If queueDir specifies only the directory, then SendQ2 will automatically generate the output filename.

Important: The SMTPQ functionality is deprecated and will be removed in a future version. The SMTPQ Windows Service Visual Studo project is available on GitHub at the link below. Users would need to build the project prior to using. Chilkat does not provide pre-built binaries for the SMTPQ Windows Service.

SetCSP

(Only applies to the Microsoft Windows OS) Sets the Cryptographic Service Provider (CSP) to be used for encryption or digital signing, or decryption / signature verification.

This is not commonly used becaues the default Microsoft CSP is typically appropriate.
One instance where SetCSP is necessary is when using the Crypto-Pro CSP for the GOST R 34.10-2001 and GOST R 34.10-94 providers.

SetDecryptCert2

Explicitly specifies the certificate and associated private key to be used for decrypting S/MIME encrypted email.

Note: In most cases, it is easier to call AddPfxSourceFile or AddPfxSourceData to provide the required cert and private key. On Windows systems where the certificate + private key has already been installed in the default certificate store, nothing needs to be done -- the mailman will automatically locate and use the required cert + private key.

SetPassword

Provides a more secure way of setting either the POP3 or SMTP password. The protocol can be "pop3" or "smtp". When the protocol is "pop3", this is equivalent to setting the PopPassword property. When protocol is "smtp", this is equivalent to setting the SmtpPassword property.

SetSslClientCert

Sets the client-side certificate to be used with SSL connections. This is typically not required, as most SSL connections are such that only the server is authenticated while the client remains unauthenticated.

SmtpConnect

Explicitly establishes a connection to the SMTP server, which includes establishing a secure TLS channel if required, and receives the initial greeting. This method stops short of authenticating. The SmtpAuthenticate method should be called after a successful call to this method.

Note 1: The OpenSmtpConnection method both connects and authenticates. It is the equivalent of calling SmtpConnect followed by SmtpAuthenticate.

Note 2: All methods that communicate with the SMTP server, such as SendEmail, will automatically connect and authenticate if not already connected and authenticated.

Important: All TCP-based Internet communications, regardless of the protocol (such as HTTP, FTP, SSH, IMAP, POP3, SMTP, etc.), and regardless of SSL/TLS, begin with establishing a TCP connection to a remote host:port. External security-related infrastructure such as software firewalls (Windows Firewall), hardware firewalls, anti-virus, at either source or destination (or both) can block the connection. If the connection fails, make sure to check all potential external causes of blockage.

SmtpNoop

bool SmtpNoop();

Sends a no-op to the SMTP server. Calling this method is good for testing to see if the connection to the SMTP server is working and valid. The SmtpNoop method will automatically establish the SMTP connection if it does not already exist.

SmtpReset

bool SmtpReset();

Sends an RSET command to the SMTP server. This method is rarely needed. The RSET command resets the state of the connection to the SMTP server to the initial state (so that the component can proceed with sending a new email). The SmtpReset method would only be needed if a mail-sending method failed and left the connection with the SMTP server open and in a non-initial state. (A situation that is probably not even possible with the Chilkat mail component.)

SmtpSendRawCommand

Sends a raw command to the SMTP server and returns the SMTP server's response. If non-us-ascii characters are included in command, then charset indicates the charset to be used in sending the command (such as "utf-8", "ansi", "iso-8859-1", "Shift_JIS", etc.)

If bEncodeBase64 is true, then the response is returned in Base64-encoded format. Otherwise the raw response is returned.

SshAuthenticatePk

Authenticates with the SSH server using public-key authentication. The corresponding public key must have been installed on the SSH server for the sshLogin. Authentication will succeed if the matching sshUsername is provided.

Important: When reporting problems, please send the full contents of the LastErrorText property to support@chilkatsoft.com.

SshAuthenticatePw

An SSH tunneling (port forwarding) session always begins by first calling SshTunnel to connect to the SSH server, then calling either AuthenticatePw or AuthenticatePk to authenticate.

Note: Once the SSH tunnel is setup by calling SshTunnel and SshAuthenticatePw (or SshAuthenticatePk), all underlying communcations with the POP3 or SMTP server use the SSH tunnel. No changes in programming are required other than making two initial calls to setup the tunnel.

Important: When reporting problems, please send the full contents of the LastErrorText property to support@chilkatsoft.com.

SshOpenTunnel

Connects to an SSH server and creates a tunnel for SMTP or POP3. The sshHostname is the hostname (or IP address) of the SSH server. The sshPort is typically 22, which is the standard SSH port number.

An SSH tunneling (port forwarding) session always begins by first calling SshTunnel to connect to the SSH server, followed by calling either SshAuthenticatePw or SshAuthenticatePk to authenticate.

Note: Once the SSH tunnel is setup by calling SshOpenTunnel and SshAuthenticatePw (or SshAuthenticatePk), all underlying communcations with the SMTP or POP3 server use the SSH tunnel. No changes in programming are required other than making two initial calls to setup the tunnel.

Important: All TCP-based Internet communications, regardless of the protocol (such as HTTP, FTP, SSH, IMAP, POP3, SMTP, etc.), and regardless of SSL/TLS, begin with establishing a TCP connection to a remote host:port. External security-related infrastructure such as software firewalls (Windows Firewall), hardware firewalls, anti-virus, at either source or destination (or both) can block the connection. If the connection fails, make sure to check all potential external causes of blockage.

UnlockComponent

bool UnlockComponent(string code);

Unlocks the component. This must be called once at the beginning of your program (or ASP / ASP.NET page). It is very fast and has negligible overhead. An arbitrary string, such as "Hello World" may be passed to automatically begin a fully-functional 30-day trial.

A valid purchased unlock code for this object will always included the substring "MAIL", or can be a Bundle unlock code.

UseCertVault

Adds an XML certificate vault to the object's internal list of sources to be searched for certificates and private keys when encrypting/decrypting or signing/verifying. Unlike the AddPfxSourceData and AddPfxSourceFile methods, only a single XML certificate vault can be used. If UseCertVault is called multiple times, only the last certificate vault will be used, as each call to UseCertVault will replace the certificate vault provided in previous calls.

UseSsh

Uses an existing SSH tunnel for the connections to the POP3 andSMTP servers. This method is identical to the UseSshTunnel method, except the SSH connection is obtained from an SSH object instead of a Socket object.

Uses an existing SSH tunnel. This is useful for sharing an existing SSH tunnel connection wth other objects. (SSH is a protocol where the tunnel contains many logical channels. SMTP and POP3 connections can exist simultaneously within a single SSH tunnel as SSH channels.)

UseSshTunnel

Uses an existing SSH tunnel. This is useful for sharing an existing SSH tunnel connection wth other objects. (SSH is a protocol where the tunnel contains many logical channels. SMTP and POP3 connections can exist simultaneously within a single SSH tunnel as SSH channels.)